# E?.M? — Prototype story backlog (<ModuleName>)

<!-- Copy this file to docs/plans/E{epic}M{module}-prototype-backlog.md or E{epic}S{n}-client-prototype-backlog.md when decomposing. -->
<!-- Policy: [Full-stack epic decomposition](../../.cursor/rules/full-stack-epic-decomposition.md) -->

Working backlog for **Epic ? — Slice ?** ([slice anchor](../decomposition/epics/epic_??_*.md#…)). Decomposition and contracts: [E?.M? — ModuleName](../decomposition/modules/E?_M?_*.md).

**Full-stack policy:** Epics deliver **playable game features**. Every **player-visible** story has a **`client`** Linear issue created in **this same decomposition pass** — not an undocumented follow-up. Reference: [E1M3 (paired server+client)](../plans/E1M3-prototype-backlog.md), [E3S5 (client slice)](../plans/E3S5-client-prototype-backlog.md).

**Labels (Linear):** module label **`E?.M?`** on every issue; add **`server`** or **`client`** + **`Story`** as listed.

**Linear issues (created):** attach `docs/plans/NEO-*-implementation-plan.md` on the story branch when work starts.

| Slug | Layer | Linear |
|------|-------|--------|
| E?M?-01 | server | [NEO-??](https://linear.app/neon-sprawl/issue/NEO-??) |
| E?M?-01-client | client | [NEO-??](https://linear.app/neon-sprawl/issue/NEO-??) |
| … | … | … |
| E?M?-NN-capstone | client | [NEO-??](https://linear.app/neon-sprawl/issue/NEO-??) |

**Dependency graph in Linear:** document `blockedBy` for each issue (client stories blocked by their server API dependencies).

**Board order:** estimates **1…N** matching slug execution order; sort Epic project by **Estimate** (ascending).

---

## Story order (recommended)

| Order | Slug | Layer | Depends on |
|-------|------|-------|------------|
| 1 | **E?M?-01** | server | … |
| 2 | **E?M?-01-client** | client | E?M?-01 |
| … | … | … | … |

---

## Kickoff decisions (decomposition defaults)

| Topic | Decision | Rationale |
|-------|----------|-----------|
| HUD fidelity | Prototype Labels / debug panels (not final art) | NEO-24 / NEO-28 precedent |
| Authority | Client displays only; mutations via server routes | [client_server_authority.md](../decomposition/modules/client_server_authority.md) |

---

### E?M?-01 — <Server story title>

**Goal:** …

**In scope**

- …

**Out of scope**

- Godot UI — **client counterpart [NEO-??](#)** (not optional; separate issue)

**Acceptance criteria**

- [ ] …

**Client counterpart:** [NEO-??](https://linear.app/neon-sprawl/issue/NEO-??) — <one-line HUD summary>

---

### E?M?-01-client — <Client story title>

**Goal:** Godot …

**In scope**

- `client/scripts/*_client.gd`, `main.gd` wiring, HUD under `UICanvas`
- GdUnit tests with HTTP doubles ([testing-expectations.md](../../.cursor/rules/testing-expectations.md))
- `docs/manual-qa/NEO-??.md` — **Godot** steps (server + client running)

**Out of scope**

- …

**Acceptance criteria**

- [ ] Player-visible outcome in Godot (not Output-panel-only)
- [ ] Manual QA checklist exercisable without Bruno

---

### E?M?-NN-capstone — Playable <feature> loop in client

**Goal:** Prove epic slice acceptance **in Godot** without Bruno.

**In scope**

- `docs/manual-qa/NEO-??.md` session script
- `client/README.md` integration notes

**Acceptance criteria**

- [ ] Vision prototype gate / epic AC satisfied by a human in Godot

---

## After this backlog

- Track delivery in Linear; keep `blockedBy` synchronized.
- **Do not** mark module **prototype complete** until **client** stories (and capstone if any) are **Done** or explicitly deferred with a **created** follow-up issue id.
- For each issue kickoff: `docs/plans/{NEO-XX}-implementation-plan.md` per [story-kickoff](../../.cursor/rules/story-kickoff.md).

## Decomposition complete checklist

- [ ] Every player-visible AC has a **`client`** Linear issue
- [ ] No “optional follow-up” / “future client” without NEO-XX
- [ ] Epic DoD mentions **Godot** (not Bruno-only)
- [ ] [documentation_and_implementation_alignment.md](../decomposition/modules/documentation_and_implementation_alignment.md) updated

## Related docs

- [epic_??_*.md](../decomposition/epics/)
- [neon_sprawl_vision.plan.md — Prototype Scope](../../neon_sprawl_vision.plan.md)
