Stop conditions for the generational loop.
Any one condition being met halts the run. At least one termination
condition must be configured (enforced by Petri.Config).
Conditions
max_generations— stop after this many generationsfitness_threshold— stop when best fitness reaches this valuestagnation_generations— stop if no improvement for this many generationstime_budget_ms— stop after this many milliseconds elapsed