# Stacksmith — completion plan

## Standing prompt

> Build the smallest playable proof that changing a falling-block bag creates understandable strategy. Keep probability visible, curses telegraphed, and team ownership unambiguous. Work in vertical slices, record the decision after every test, and expand only after players deliberately draft for a plan.

## Product promise

Stacksmith is a 1–2 player falling-block roguelike battler where every shape is a card. Players defeat cursecasters by converting line clears and combos into direct health damage, then mutate their weighted piece bag by adding strange polyominoes, changing draw probabilities, or retiring shapes. Enemies pressure the board with telegraphed curses rather than a competing stack. Solo play emphasizes build mastery; team play emphasizes shared-stack communication.

## Definition of done

Stacksmith is complete when it offers:

- a responsive, legible falling-block game on keyboard and controller;
- solo circuits, local relay co-op, and stable online modes;
- a six-fight route plus multi-phase boss that lasts roughly 20–30 minutes;
- at least four strategically distinct bag archetypes without one dominant thin-bag solution;
- transparent probabilities, preview rules, enemy incantations, and post-fight reward effects;
- a broad but readable mutation library whose pieces each have a job and drawback;
- deterministic seeds and replays suitable for balance tests and multiplayer dispute resolution;
- onboarding, remapping, reduced motion, color-safe shape identification, and scalable UI;
- a complete art, sound, save, telemetry, and release pipeline.

## Milestones

### M0 — Bag thesis

**Prove:** Drafting and reweighting shapes changes a player's placement plan in a way they can explain.

- Familiar base-seven falling-block rules.
- One cursecaster with four telegraphed curses.
- Add, boost, and suppress reward choices.
- A 12 × 22 board and direct-health sends where every block deals 1 damage and pays $1.
- A visible curse-survival encounter bonus.
- Hold removed from the starting kit and represented as a purchasable forge upgrade.
- Exact bag odds plus a repeatable 100-draw sample.
- Same-keyboard relay ownership on one shared stack.

**Exit:** In two sessions, most players state a pre-fight bag plan, recognize when a drafted piece enables it, and request a specific next probability change.

### M1 — Run slice

**Prove:** Bag decisions compound into a satisfying 20-minute arc.

- Four cursecasters with distinct, disclosed curse decks.
- One branching route, repair forge, elite, and boss.
- Fight money, block augments, retirement, five relics, and eight mutations.
- Loss recovery that preserves the lesson without erasing the run.

**Exit:** Players finish or lose a run, can name its build identity, and choose another route to try a different answer.

### M2 — Co-op network proof

**Prove:** Shared-stack ownership and curses remain fair and readable under latency.

- Deterministic fixed-step rules and replay log.
- Online relay, reconnect, and spectator state.
- Curse synchronization, input buffering, and latency simulation.
- Optional two-board versus as a separate mode only after the PvE campaign works.

**Exit:** Matches reproduce from logs, reconnect without desynchronizing, and remain understandable at 120 ms simulated latency.

### M3 — Vertical slice

**Prove:** The complete experience has a memorable identity and approachable first session.

- Final-quality first biome, four cursecasters, boss, UI, audio, VFX, tutorial, and accessibility pass.
- Controller support and remapping.
- Profile unlocks based on blueprints, never permanent combat stats.
- External playtest deployment and opt-in telemetry.

**Exit:** New players complete a run attempt without live instruction and voluntarily begin another.

### M4 — Production and launch

- Full rival, mutation, relic, and route library.
- Matchmaking, private lobbies, moderation, daily seeds, achievements, and cloud saves.
- Performance, compatibility, compliance, store, crash, and rollback gates.

## Immediate decisions for William

1. Does shared-stack relay feel like the main co-op identity, or should two-board co-op become the primary mode?
2. Should a run loss return to the previous forge, offer one reweight, or end the run?
3. Is the desired tone grimy underground sport, magical foundry, or playful arcade workshop?
4. Should exact probabilities remain visible during the fight or only between fights?
5. After testing Plus, Pixel, and U separately, which mutation best demonstrates the promise?

## Current production priority

Friend Playtest Build 01 is the active gate. Complete `MVP_CHECKLIST.md` before expanding the encounter roster or mutation library. The next implementation slice is three functioning upgrades—Hold Socket, Line Dividend, and Hex Umbrella—followed by a two-fight run and the first reviewed SoundDeck integration.
