/// If a program has ended with the result Skipped, that program may not
/// start again until a certain time has passed. This is a map from program
/// name to game time. When a program ends with the result Skipped, its name
/// is added to this map, with the current game time. (When the program ends
/// with any other result, its name is removed from the map.)
So, it controls how often the *same* program gets skipped, so I'm not sure of the implications here. Maybe go with:
This is the documentation for SkippedPrograms:
/// If a program has ended with the result Skipped, that program may not
/// start again until a certain time has passed. This is a map from program
/// name to game time. When a program ends with the result Skipped, its name
/// is added to this map, with the current game time. (When the program ends
/// with any other result, its name is removed from the map.)
So, it controls how often the *same* program gets skipped, so I'm not sure of the implications here. Maybe go with:
uint32_t const earliest_ allowed_ start_time = i->second + 100;
Or something similar?