CascadeObjectives
A scenario is a row: a `setup` that reshapes the world, and a `check` that reads the run and returns progress plus a verdict.
CascadeObjectives — Phase 23, as data
A scenario is a row: a setup that reshapes the world, and a check that
reads the run and returns progress plus a verdict.
for _, o in ipairs(Objectives.LIST) do print(o.id, o.name, o.description) end
| id | name | what it asks |
|---|---|---|
stability | Stability | survive 10 minutes without a cascade over 2,000 cells |
high_output | High Output | 1,000,000 production while total damage stays under 50,000 |
dense_world | Dense World | hold above 75% occupancy for 5 continuous minutes |
minimal_intervention | Minimal Intervention | stay stable using fewer than 20 interventions |
recovery | Recovery | after a catastrophic event, bring the world back to 70% |
Nothing here is special-cased in the simulation. Adding an objective is adding
a row; Objectives.evaluate(sim, obj, ctx) is the whole runner, and setup
belongs to the moment the objective is chosen — run once, never on a redraw,
or progress would reset under the player.
Objectives are deliberately hard at the model's own criticality: the Stability scenario fails in seconds on a run nobody is tending, because cascades over 2,000 cells are exactly what a critically self-organised board produces.
Scoped to this part · feeds back into the world's score.