Hold and Win — Presentation Module
Optional module for
slot-presentation-flow-template.md. Copy into a game-specific presentation document and replace every[GAME TODO]. Backend feature state, locked cells, values, counters, jackpots and payout are authoritative. Every unique phase below must link to a Visual Ref ID defined by the base template.
1. Feature flow
2. Game contract placeholders
3. Phase sheet
4. Locked-cell rules
- A locked cell never spins, shifts or receives a different value unless the backend explicitly returns a transformation for that cell.
newly_landed/equivalent drives landing animation; the full locked set restores state and supports reconnect. Do not replay every locked-cell landing on each step.- Cell position and value are bound by stable coordinates/index, never by array order.
- Value labels remain visible after landing and through resize/reconnect.
- Multiple new cells may land together or in the exact game-defined order:
[GAME TODO].
5. Counter and terminal rules
- The displayed respin counter mirrors the backend state; the client does not decrement/reset it speculatively.
- A hit animation finishes before the reset/add animation unless the game-specific document says they run together.
0 remainingis presented only when the backend closes the feature or sends an explicit terminal state. Do not wait for a state the protocol never emits.- A full board, collector award or fixed jackpot may terminate/alter the feature only when present in the authoritative receipt.
6. Popup inventory
7. Reconnect, skip and failure
- Bootstrap/recovery must restore the full locked set, values, remaining respins and accumulated total.
- A recovered step must not mint a new idempotency key or replay a monetary operation.
- Skip snaps new cells, values, counter and totals to the authoritative terminal visual state.
- Required presentation failure parks/reconciles the round; it must not enable another paid wager.
- Scene cleanup removes timers/listeners/tweens without clearing durable feature state.
8. Deterministic DEV scenarios
- Trigger with minimum qualifying cells.
- First respin miss.
- One new cell resets/adds counter.
- Multiple cells land in one step.
- Collector or fixed jackpot award, if supported.
- Full-board terminal case.
- Counter-exhaustion terminal case.
- Reconnect before a step and after a landed cell.
- Skip during landing, jackpot and total popup.