# Phase 2: Season 1 Vertical Slice (Soil) - Discussion Log > **Audit trail only.** Do not use as input to planning, research, or execution agents. > Decisions are captured in CONTEXT.md — this log preserves the alternatives considered. **Date:** 2026-05-09 **Phase:** 2 — Season 1 Vertical Slice (Soil) **Areas discussed:** Garden geometry & input · Time density (growth + offline) · Lura's Season 1 arc shape · Letter-from-the-garden composition · Begin screen treatment · Memory Journal access + layout · Visual placeholder treatment for plants · Phase 2 Settings UI scope --- ## Garden Geometry & Input ### Garden shape | Option | Description | Selected | |--------|-------------|----------| | Small fixed grid (4×4 = 16 tiles) | Intimate walled-garden feel; matches cozy/contemplative tone and Phase 2 minimum-viable bias. | ✓ | | Medium fixed grid (6×6 = 36 tiles) | More room to experiment and more strategic depth, but Season 1 will feel emptier with sparse early plantings and authored-content scope grows. | | | Freeform / non-grid (5–7 named planting points) | Bespoke, painterly walled-garden feel. More work upfront and harder to cleanly extend in Seasons 2+. | | ### Seed placement input | Option | Description | Selected | |--------|-------------|----------| | Click empty tile → inline seed picker | Clicking an unoccupied tile pops a small inline picker. Honors UX-01 'no UI clutter'. | ✓ | | Persistent seed sidebar + click empty tile | More discoverable but introduces a permanent UI element that fights the A Dark Room rule. | | | Drag-from-inventory to tile | Tactile, but more failure modes and more Phase 3 polish to feel right. | | ### Plant type count | Option | Description | Selected | |--------|-------------|----------| | 2–3 plant types | Player exercises real choice; small enough to author + concept-art under Phase 2's minimum-viable bias. | ✓ | | Just 1 plant type | Most minimum-viable possible; risks slice feeling like a single-mechanic demo. | | | 4–6 plant types | Richer Season 1 with more variety, but ≈4× the authored-content + concept-art surface. | | ### Seed supply | Option | Description | Selected | |--------|-------------|----------| | Infinite seeds from start | Anti-FOMO; meaningful constraint is *time*, not seed inventory. | ✓ | | Harvest yields seeds + fragment | Adds a light economy; risks turning the cozy slice into a resource-management loop. | | | Limited starter seeds + replenish via composting | Couples composting and planting tightly; risks player feeling soft-locked. | | ### Plant unlock progression | Option | Description | Selected | |--------|-------------|----------| | First plant from start, others unlock by fragment-count | Drip-feeds discovery without ceremony. | ✓ | | All available from start | Simplest sim; loses small but real beat of progression. | | | Unlocks tied to specific authored fragments | Most narrative; brittle if deterministic selector reorders things. | | ### Empty tile look in Phase 2 | Option | Description | Selected | |--------|-------------|----------| | Faint outlined tile + subtle hover state | Readable but unembellished; Phaser primitive; no asset work. | ✓ | | Visible 'empty plot' placeholder texture | More legible at a glance, but bakes in a visual Phase 3 will throw away. | | | Invisible tiles (only become visible on hover) | Maximum tonal restraint; risks confusing first-time players. | | ### Post-harvest tile state | Option | Description | Selected | |--------|-------------|----------| | Returns to empty + brief acknowledgement | Fastest loop, cleanest sim, honors cozy 'release' feel. | ✓ | | Leaves a 'spent' state for a short cooldown | Adds an extra plant lifecycle state to sim and save schema. | | | Fragment must be 'taken to the journal' first | Tactile but couples sim and UI tightly and adds dangling state. | | --- ## Time Density (Growth + Offline) ### First-plant growth duration in active play | Option | Description | Selected | |--------|-------------|----------| | ~2–5 minutes | Cozy but watchable; lets a playtest session complete the loop in ~10 minutes. | ✓ | | ~30 seconds – 2 minutes | Demo-pace; reads less 'idle'. | | | ~15–60 minutes | True idle; hard to playtest end-to-end without a debug fast-forward. | | | ~6–12 hours (long-form idle) | Anchors 24h cap; risks empty active play; demands strong return-screen. | | ### Per-plant duration variance | Option | Description | Selected | |--------|-------------|----------| | Vary (short / medium / longer) within band | Real time-vs-yield tradeoffs; tonal identity per plant. | ✓ | | All identical growth times | Simplest sim; loses 'patience-is-rewarded' beat. | | | All identical for Phase 2; vary later | Avoids re-litigating; means Season 1 plants feel interchangeable. | | ### Ready-state behavior | Option | Description | Selected | |--------|-------------|----------| | Auto-harvest during offline; manual in active play | Cleanest idle-game shape; lets the letter tell a story. | ✓ | | Wait indefinitely — manual always | Maximum agency; offline payoff feels thin. | | | Decay if unharvested past a threshold | Adds tension and soft FOMO undercurrent — likely runs into anti-FOMO doctrine. | | ### 24h offline cap surfacing | Option | Description | Selected | |--------|-------------|----------| | Capped silently in the letter's voice | Anti-FOMO; tonally consistent. | ✓ | | Explicit cap notice in the letter | Honest about the cap; risks reading as a system message. | | | Cap silently and never mention it | Cleanest tone; player returning after 3 days might be confused. | | --- ## Lura's Season 1 Arc Shape ### Lura form | Option | Description | Selected | |--------|-------------|----------| | Discrete visits at the gate | Bounded each visit; matches bible's 'she appears at the garden gate' framing. | ✓ | | Single ongoing text-message thread | More 'friend texting,' but loses gate-arrival beat. | | | Hybrid: gate + occasional texts between visits | Two narrative-state mechanisms; risks Phase-2 scope creep. | | ### Beat count | Option | Description | Selected | |--------|-------------|----------| | 3 beats: arrival · mid · farewell | Tight Season 1 arc; small authoring surface; load-bearing for tone. | ✓ | | 5 beats (arrival, two mid, late, farewell) | More texture; doubles authoring + Ink-state plumbing surface. | | | Just 1 arrival beat in Phase 2 | Simplest; Season 1 loses tonal anchor and prologue feels unfinished. | | ### Beat gating | Option | Description | Selected | |--------|-------------|----------| | Fragment count thresholds (1st / 4th / 8th harvest) | Simple, content-coupled, robust to varying play sessions. STRY-10 satisfied. | ✓ | | Specific authored-fragment IDs unlock specific beats | Most narratively rich; brittle if selector reorders things. | | | Pure tick-count thresholds | Cleanest against STRY-10; least responsive to player action. | | ### Beat-fire UX | Option | Description | Selected | |--------|-------------|----------| | Subtle gate indicator + player-initiated visit | Honors A Dark Room rule and player's pace. | ✓ | | Auto-opens dialogue when beat fires | Disrupts gardening flow; less cozy. | | | Queues silently; player finds Lura by clicking gate when curious | Most A-Dark-Room; risks player missing all 3 beats. | | --- ## Letter-from-the-Garden Composition ### Composition method | Option | Description | Selected | |--------|-------------|----------| | Authored skeleton + templated insertions | Best balance of voice and reactivity. | ✓ | | Fully procedural from event-log templates | Risks tonal drift; voice depends on templates not authoring. | | | Fully hand-authored prose, conditional inclusion only | Maximum voice control; least reactive. | | ### Authoring format | Option | Description | Selected | |--------|-------------|----------| | Ink (.ink files in /content/dialogue/) | Reuses STRY-06 stack — one runtime path, one tooling path. | ✓ | | Markdown with frontmatter (in /content/letters/) | Aligns with fragment authoring; adds a second narrative-rendering path. | | | Both — Ink for branching, Markdown for prose passages | Maximum power; introduces a third loader path. | | ### Offline event log scope | Option | Description | Selected | |--------|-------------|----------| | Compact summary (counts + IDs of bloomed/harvested + any unfired Lura beat) | Compact, sufficient, bounded in size. | ✓ | | Full ordered timeline (every state transition with timestamp) | Most powerful; biggest schema surface and storage cost. | | | Just last/biggest event(s) | Smallest schema; letter has less to say across multiple returns. | | ### Letter UX (when shown / dismiss) | Option | Description | Selected | |--------|-------------|----------| | On return after ≥5 minutes; full-screen overlay; one tap to dismiss | Avoids letter-spam; full-screen honors tonal weight. | ✓ | | Always show on tab return regardless of duration | Most consistent; risks feeling intrusive. | | | Inline pane (slides in from a corner) | Less disruptive; loses 'sit with this' tonal beat. | | --- ## Begin Screen Treatment ### Phase 2 vs Phase 3 split | Option | Description | Selected | |--------|-------------|----------| | Tasteful placeholder; Phase 3 paints | Honors no-aesthetic-polish bias; avoids Phase 3 rework. | ✓ | | Real painted gesture-gate now | Strongest first impression today; pulls Phase 3 work earlier and risks scope creep. | | | Title text only (no visual treatment) | Most-A-Dark-Room; risks reading as unfinished. | | ### Subsequent-load behavior | Option | Description | Selected | |--------|-------------|----------| | Every load (browser autoplay policy demands it) | Honest with browser constraints; Recommended option. | | | Only first run; subsequent loads skip to garden + audio enables on first interaction | Smoother return; brief silent moment until first interaction. | ✓ | | Only first run; explicit 'enable sound' prompt later | Two surfaces to maintain; risks system-message feel. | | **Notes:** User picked the smoother-return path, accepting the brief silent moment until the first interaction as a worthwhile tradeoff for cozy pacing. CORE-05 + AEST-07 are both still satisfied — the gesture happens on first run; subsequent loads use any first interaction as the gesture. --- ## Memory Journal Access + Layout ### Open mechanism | Option | Description | Selected | |--------|-------------|----------| | Small persistent icon + keyboard shortcut | Most discoverable without violating UX-01; Recommended option. | | | Reveals after first harvest, then persistent | Most A-Dark-Room (UI grows as player progresses). | ✓ | | Hidden until journal hotkey is discovered | Maximum tonal restraint; high risk players miss it. | | ### Layout | Option | Description | Selected | |--------|-------------|----------| | Slide-in side panel; click a fragment to expand inline | Garden stays visible; lets player feel rooted; Recommended option. | | | Full-screen modal overlay; back button to return to garden | More tonal weight per visit; player can't see plants ripening while reading. | ✓ | | Dedicated 'journal view' you navigate to, like a separate room | Most narratively rich; biggest implementation lift. | | ### New-fragment surfacing in active play | Option | Description | Selected | |--------|-------------|----------| | Immediate full-text reveal modal; dismiss to return to garden | Honors harvest as a small event; creates a memorable beat. | ✓ | | Quiet deposit — small acknowledgement, find it in journal later | Most A-Dark-Room; risks player never reading the prose. | | | Inline reveal at the harvested tile; tap to dismiss | Tactile but fragile (DOM positioned over Phaser canvas resizes). | | --- ## Visual Placeholder Treatment for Plants ### Plant look per growth stage | Option | Description | Selected | |--------|-------------|----------| | Simple Phaser-primitive shape per stage, single color per type | No PNG asset work; firewall stays clean; Phase 3 swaps in painted sprites. | ✓ | | Programmer-art sprite per stage per plant (PNG placeholders) | Differentiates more legibly; produces throwaway assets that go through provenance gate. | | | Text labels at the tile instead of any visual | Most A-Dark-Room; reads as severe. | | ### Ready-state cue | Option | Description | Selected | |--------|-------------|----------| | Subtle glow / pulse on ready tiles | Reads at a glance without text; Phase 3 paints over with warmer light. | ✓ | | Bright color shift on the placeholder shape | Most legible; bakes a specific color Phase 3 will rework. | | | Text indicator at tile ('ready') | Very explicit; least cozy. | | --- ## Phase 2 Settings UI Scope ### Settings UI scope | Option | Description | Selected | |--------|-------------|----------| | Save management only (Export/Import + Restore prior snapshot) | Smallest scope that completes deferred Phase-1 surfaces; audio + accessibility stay in Phase 8. | ✓ | | Save management + audio sliders | Doesn't fit 'no aesthetic polish' framing; risks dragging in keyboard nav and accessibility. | | | No settings menu at all in Phase 2 | Smallest Phase-2 lift; deferred items still aren't player-reachable. | | ### Access | Option | Description | Selected | |--------|-------------|----------| | Small icon in a corner of the main view + keyboard shortcut | Same restraint pattern as Memory Journal affordance. | ✓ | | Hidden in a 'cog' on Begin screen + accessible from Lura's gate | Risks burying critical save-recovery affordances. | | | Only accessible via hotkey (no visual affordance) | Risks players losing access to save recovery in a crash recovery moment. | | ### `navigator.storage.persist()` outcome surfacing | Option | Description | Selected | |--------|-------------|----------| | One-time soft toast on first save if denied; nothing if granted | Honors UX-01 + cozy tone; respects 'surfaces the result respectfully'. | ✓ | | Always show 'persistent storage: yes/no' indicator in Settings only | Player won't know save is at risk if persistence denied. | | | Modal dialog if denied | Strongest call to attention; reads anti-cozy. | | --- ## Claude's Discretion Areas where the user explicitly deferred to implementation choice (full list in CONTEXT.md `` § "Claude's Discretion"): - Specific growth-duration values per plant within the 2–5min band. - Exact fragment-count thresholds for plant unlocks and Lura beats (model is locked, values may shift ±1–2 in playtest). - Form of the post-harvest acknowledgement beat (text / particle / pause). - Form of Lura's gate indicator on beat-unlock. - Tick rate / sim cadence (likely 4–10Hz). - Internal Zustand store slice shapes. - Internal Phaser scene tree. - Specific copy of Begin screen, persistence-denied toast, post-harvest acknowledgement (must match bible voice; user reviews). - e2e fast-forward mechanism (hidden hotkey vs URL flag vs sim-clock injection). - Memory Journal empty-state copy. ## Deferred Ideas Items mentioned during discussion that belong in other phases (full list in CONTEXT.md ``): - Hybrid Lura presence (gate + ambient drip) — possibly Phase 4+. - Plant-type unlocks tied to specific authored fragments — possibly Phase 4+. - Fully procedural letter from event-log templates — reconsider if slot vocabulary too small in playtest. - Audio sliders, keyboard nav, browser-zoom guarantees, color-redundant icons, tab-title bloom, Lura-not-numbers UX — Phase 8. - Visual regression for asset library — Phase 8. - Roothold prestige, Season transitions, die-off, finite ceiling enforcement, cross-pollination — Phase 4. - Memory Storms, place-memory vignettes, Nameless Man's full arc — Phase 5. - The Below, ecosystem planting, the Loom, the Archivist — Phase 6. - Final binary choice + credits/coda rest state — Phase 7. - Watercolor post-process, painted plants, painted Begin screen, solo cello + ambient buses, reduced-motion toggle — Phase 3. - Real production-volume AI assets + locked north-star reference set — Phase 5 (Phase 1 IOU AEST-09). - Real `migrate_v1_to_v2` — Phase 4 (when Roothold lands). Phase 2 only extends `V1Payload` shape. - Compost yielding seeds back — rejected; Phase 4's cross-pollination is the proper place for seed-as-economy. - Persistent Settings element on Begin screen — rejected in favor of in-garden corner icon + hotkey.