Nobody looks at a level and decides whether it is hard. Difficulty is measured, and every level has to sit inside its act's band — if it does not, it does not get into the repository.
Four metrics
Every level is solved end to end by the game's own solver, producing four numbers:
- Minimum move count. This is the level's
par, and it is never written by hand. - State space. How many distinct reachable states the level has; the real size of the puzzle.
- Dead-end rate. The share of states from which the solution is already lost.
- Solution variety. How many distinct solutions exist within minimum + 2 moves.
The bands
Every act sits in a band for each of those four numbers:
| Act | Minimum moves | State space | Dead ends | Solution variety |
|---|---|---|---|---|
| I | 6–14 | < 5,000 | ≤ %0 | ≥ 3 |
| II | 10–22 | < 50,000 | ≤ %10 | ≥ 2 |
| III | 14–30 | < 400,000 | ≤ %20 | ≥ 1 |
This table is the one the level validator enforces in CI — the band shown to the reader and the band checked by the machine cannot be two different things.
You can see where the levels actually land in the table on Acts; those values come from the catalogue too.
Why the dead-end rate opens slowly
A dead end is losing the solution without noticing: opening a door at the wrong moment, spending coins on the wrong gate, walking a member into a corner they cannot be recovered from.
In act 1 that rate is near zero, because the player is still learning the rules. By act 3 it reaches 20% — but even there it costs one tap, because undo is unlimited. A dead end does not punish the player; it invites them to pay attention.
Why solution variety shrinks
Act 1 asks for at least three distinct near-minimum solutions: a new player has to be able to find their own way through. By act 3 one is enough, because what is being asked for is no longer "a route" but the route.
That is also the explanation for why the Master star gets harder in act 3.