pattern

Use when

Your design is growing and you sense it should be smaller, not bigger.

What it is. Depth from few, well-chosen elements. You cut everything the [[process-pillars|pillars]] don’t require, then tune what remains until it sings. The absence carries meaning: the empty rooms, the mechanic you didn’t ship, the second button you refused.

Why it’s fun. A small verb set the player fully understands becomes a language they can speak fluently. Mastery is legible — they can see the whole game and still be surprised by it. Elegance reads as respect for the player’s time.

The core move

One question, asked of every noun on the design doc:

Does this earn its place? — does it serve a pillar, deepen an existing verb, or is it here because it seemed cool?

If the answer is “cool,” cut it. Cool is cheap; focus is expensive. The discipline is not adding less — it’s adding, testing, and then having the nerve to remove.

LeverWhat it doesTune by
One-mechanic disciplineShip a single core verb; make everything a variation on itCount your verbs — if a new player must learn 5 before playing, you have 4 too many
Earn-its-place testTrace each element to a pillar; orphans get cutDelete it in a build; if nobody misses it, it stays deleted
Negative spaceLet silence, emptiness, and absence do workWhere does the game breathe? A screen with nothing on it is a design choice
Depth over breadthRecombine few elements instead of adding new onesInteraction count > element count is the goal

Why it works

Reference lines

Twist seams

Restraint is a lens you point at another idea — the twist is what you refuse to add.

Ties to the pillars

Restraint is the enforcement arm of process-pillars. The pillars say what the game is about; restraint is the willingness to act on that by cutting what isn’t. A pillar you won’t defend by cutting is just a wish. Run the loop: [[process-intent-to-brief|brief]] → pillars → this test → [[process-composition|compose]] the survivors.

Overdone when

Restraint starves. Subtraction is a tool, not a religion — cut past the pillars and you get an empty, repetitive husk that reads as unfinished, not elegant.

SymptomDiagnosisFix
Player exhausts the game in 20 minutesYou cut [[system-progression|progression]] and [[system-mastery-curve|mastery]] with the fatAdd depth inside the verb, not a second verb
”Minimalist” but boringRestraint became [[antipattern-content-desert|content-desert]]Negative space needs something to be negative around
Every level feels identicalOne mechanic, zero variationRecombine and escalate the one verb — see pattern-escalation-and-payoff
Elegant but forgettableYou cut the [[pattern-surprise-and-delight|surprise]] tooKeep one thing that breaks the pattern

The elegant-but-empty failure is a real ceiling: [[anchor-mini-metro|Mini Metro]] survives on procedural escalation, not novelty. Without a rising [[pattern-pacing-and-tension|tension curve]], one mechanic goes stale fast.

The opposite failure

The far more common sin is the other direction: adding because you can. That’s antipattern-feature-soup — pillar-less accretion where every feature is defensible in isolation and the whole is mush. If you catch yourself justifying a feature by “players might like it” rather than “a pillar needs it,” you are already in the soup. Restraint is the antidote; antipattern-second-system is what happens when you forget it on the sequel.

Related failure modes restraint prevents: antipattern-false-depth (many shallow systems faking one deep one), antipattern-decision-paralysis (too many options, no clear read), antipattern-currency-spaghetti (resources multiplied past comprehension).

Checklist

Prove the restraint held. A focused design is felt, and feel is verified downstream — check design/FUN.md for the fun-loop gates. If the game reads as elegant on paper but plays as thin, the cut went too deep; if it reads as busy, it didn’t go deep enough.

This module rendersthe repo's markdowndirectly — edit it there, it changes here.