# Sod Tori — Brand Guidelines (DESIGN.md)

> **Status: v0.5 — 2026-08-11. THE HANDOFF SPEC.** From this book a manual
> derives, a developer builds, and a deploy ships — with little further
> decision-making. Rulebook: RB-1…12 (proposals marked). Stack: Flutter +
> Firebase, locked. Architecture: `ARCHITECTURE.md` (pseudo-tables +
> relationships). Linked triangle: this book · the branded ICP
> (`potatocore/ic-profiles/hotpotatogames/sod-tori/ICP.md`) · the GTM
> (`potatocore/gtm-strategies/hotpotatogames/sod-tori.md`).
> Earlier layer (v0.2, 2026-08-05): the dark-horizon pass. Brett's direction of
> 2026-08-05 supersedes v0.1's GBA-light system: **dark mode is the brand** —
> earth browns and living greens under a dark sky, the signature orange-gold
> shimmer, and **the horizon as the core theme**. The book is reframed around
> the numeral series: sod_tori **i** (a chess derivation anyone can pick up)
> up front; x's Ouip-era inventory held as lore.
> The canonical spec; `index.html` renders it. Child of Hot Potato Games, child
> of Potatuhs. Where this spec is silent, the HPG book and then
> `potatuhs-design/DESIGN.md` govern. HPG's answered doctrine is inherited:
> life change through play · fun is the bar · GAMES asked twice · addictive
> with off-ramps · you-vs-you leaderboards.

Provenance: `[context]` extracted · `[derived]` computed · `[proposed]` drafted ·
`[placeholder]` missing, loudly marked.

---

## 00 · Cover
- Name: **Sod Tori** `[context]`
- Tagline: **"Turn based potato combat!"** + positioning line: **"A derivation
  of chess anyone can pick up."** `[context: Brett 2026-08-05]`
- Parent chain: Potatuhs → Hot Potato Games → Sod Tori.
- Cover art: **the horizon scene** — dark sky above, dark sod below, the
  shimmer where they meet, real Potuh sprites standing on the field. The v0.1
  key art is RETIRED (`[context: Brett 2026-08-05 — "not what the game looks
  like or will look like"]`); `assets/key-art.png` remains on disk, unused.

## 01 · Brand Overview
- Name meaning `[context: docs/GAME_CANON.md; layered Brett 2026-08-10]`: the
  name reads on two floors. **Sod** = the soil potatoes grow in AND the Hebrew
  **סוֹד** (*sod* — secret / mystery; Kabbalah's deepest of the four readings) —
  the surface is dirt, underneath is the mystery. **Tori** = the martial **取り**
  (*tori* — the one who executes the technique) AND the torus energy-field every
  potato emits (the Torus Principle). *The secret of the fields.* And every field
  ends at the horizon.
- The pitch `[context: Brett 2026-08-05, verbatim-adjacent]`: *"Everything is a
  pawn — but pawns can summon potatoes. Boop an adjacent Tato to launch it and
  capture on contact; Boop an adjacent Potuh to capture it outright; or launch
  your own pieces."*
- Sod Tori is a SERIES `[context: series decision 2026-08-05]`: game i is the
  clearest possible chess derivation; game x is the full engine (types,
  seasons, weather), hyped throughout. One mechanic per numeral; no numeral
  opens until the one before it is fun with real players.
- Mission `[proposed]`: the game you get better at for a decade — depth from
  simple primitives, revealed one numeral at a time.
- Vision `[proposed]`: from a link you send a friend to **Tato coins** on real
  tables — a collected-pieces institution feeding the annual HPG tournament.
- Personality `[context: Brett 2026-08-05]`: deliberate · **simple** (simple to
  play, difficult to master) · earthy · **horizon** ("so you've mastered the
  basics — what's next on the horizon?" — the visual motif doubles as the
  progression promise) · **strategic**. Replaced deep/horizon-lit/exact:
  exactness is implementation doctrine (kept in §12's voice rules), not
  personality.
- Audiences `[context: ICP run 2026-08-06]`: facets of James (the player —
  chat-server entry, practice-first, no rank at the door) · Ike (the ladder —
  the goop counter never decreases; the rest-day-compatible HPG title) ·
  Horatio (the host — room codes make his rooftop the arena). Full branded
  profile: `potatocore/ic-profiles/hotpotatogames/sod-tori/ICP.md` · GTM:
  `potatocore/gtm-strategies/hotpotatogames/sod-tori.md`.
- Principles `[proposed]`: chess is the door · board-game truth (Tato coins are
  the floor) · one mechanic per numeral · readable resolution · parent doctrine
  inherited.

## DP · The Numeral Series & the Season Ladder — DECLARED 2026-08-11
Replaces v0.1's Era I–IV ladder (shredded). **The cadence** `[context: Brett
2026-08-11]`: **one game per year, four seasons per year.** A numeral is a year;
each **season adds exactly one new interaction rule** that deepens strategy.
Season 1 is as simple as a strategic game can be; every season after raises the
ceiling. **Every (numeral × season) stays live forever as a named mode** —
players say *"ST I, Season 1"* or *"ST III, S3"* to pick what they're in the mood
for. The ladder is a permanent menu of modes, not just a release timeline.

**Two governing constraints** `[context: Brett 2026-08-11]`:
- **Chessboard-playable through ST I** — no feature that would make the game
  unreasonably hard to run on a physical 8×8 with coins until ST II. Binds
  Seasons 1–4.
- **No Potuh evolution (i→ii→iii) until ST III** — leveling is off the table for
  the first two years (Seasons 1–8).

**ST I — the linear game** (Seasons 1–4; everything travels in straight cardinal
lines, nothing turns mid-flight):
- **S1 — Boop or Goop.** Three verbs: **Move** (step one tile), **Goop** (summon
  a Tato in a chosen direction — only *forward* is legal from the packed back row
  where flanks are your own Potuhs and the back is the wall; any open cardinal
  once a Potuh has stepped off), **Boop** (launch the adjacent goop, coming to
  rest 3 tiles from the booping Potuh along the boop line). Capture is by goop: a
  struck enemy Potuh **burrows into the sod** — hidden, not dead, until the game
  ends. Ships with the three leaderboards + the empire gauge (§15).
  GATE: strangers finish a match unaided and ask for another.
- **S2 — Walk into the goop.** A new choice: boop the goop (travels 3) *or*
  **walk into it** — advance your Potuh 1, then send the goop 3 from the new tile
  (4 from where you stood). 3 or 4 tiles, the 4 costing a step of commitment.
  GATE: the choice creates real tension.
- **S3 — Boop your own.** The tori may **boop their own fellow Potuhs** — a
  friendly launch, for repositioning / transport.
  GATE: teammates set up plays on purpose.
- **S4 — Walk into your own.** The tori may **walk into their own Potuhs** as
  well as boop them. Still 100% linear.
  GATE: the two transports trade players, not split them.

**ST II — Redirect** (Seasons 5–8) `[context: Brett 2026-08-11]`: **walking into
a thing lets you choose the direction it goes** — linearity breaks. The old "hot
potato rule" moment, and where chessboard-hard features (and toggling
`goopDisappearsOnKnock`) are first allowed.
**ST III — Levels** (Seasons 9–12): knocking out an enemy Potuh evolves the
knocker i→ii→iii (Potatyke→Potatot→Potatohr); **base** reach grows 3/4/5 by rank
(reach beyond base comes from the board — ST VI/VIII — never rank; the old 3/5/7
is emergent) and Tato caps grow. **Profitable here.**
**ST IV — The Set Board** (Seasons 13–16) `[context: Brett 2026-09-13]`: **the
opening becomes a decision.** No new in-play verb — I–III resolve unchanged; what
changes is the board and setup you bring. S13 fixed chess-style formation
(`chessSetup`) · S14 selectable board formats (`tinySetup` 6×3 +) · S15 draft your
own opening · S16 bans & mirrors.
**ST V — The Board Reshapes** (Seasons 17–20) `[Brett 2026-09-13]`: **the field
isn't fixed** — S17 expansion · S18 compression resolution · S19 pre-shaped stages
(holes, interior walls) · S20 live mid-line reshape.
**ST VI — Terrain & Tiles** (Seasons 21–24): **the ground has opinions** — S21
terrain (butter-slide, cracked, **launch-amplifier**: a goop booped from an attuned
tile flies past base reach) · S22 burrow hazards (traps) · S23 pushable obstacles
(bricks, bait) · S24 territory (depth costs reach, claim tiles). Still 1HKO; a tile
redirects or burrows, never chips. Every tile has a nature — uniformly **Earth**
through ST VII (the mono-element world; why the roster is all Earth), revealed as
elemental in ST VIII.
**ST VII — Weather & Sun** (Seasons 25–28): **the sky keeps time** — a board-wide
clock no one controls, pre-combat each round: S25 sun & moon (celestial track) ·
S26 seasons · S27 weather · S28 the full sun→season→weather cycle.
**ST VIII — Types & Health** (Seasons 29–32): **1HKO relaxes, because types demand
it** — S29 health (i/ii/iii = 1/2/3 hits) · S30 fire/water/air/earth wheel (**the
board's elements wake**: ST VI's launch-amplifier resolves into element
correspondence — goop element matching its origin tile earns the reach past base;
the emergent 3/5/7) · S31
the four categories (Elemental/Spiritual/Temporal/Oneiric; Temporal binds to
ST VII's sky) · S32 dual typing & passives.
**ST IX — Moves & Augments** (Seasons 33–36): **every Potuh a moveset** — S33
named moves + attack patterns · S34 augment tiers (Beta→Alpha) · S35 status
effects · S36 mastery & loadouts. The last rung below the full engine.
*(Per-season rules for IV–IX are declared in full in the SSOT:
`spec-lab/LAW-OF-THE-SOD.md`. Each numeral opens only when the ring inside it is
fun — see below.)*
**ST X — The Full Engine** (~10 years out): the preserved repo
(`sod_tori/sod_tori_x`) — types, seasons, weather, 166 species, the story. Kept
runnable, hyped throughout. Beyond it: the Potato World Saga (7-game arc).

**The rule of the rings** `[context: v0.1, survives]`: a numeral does not open
until the one inside it is FUN with real non-Brett players; every numeral
re-asks the GAMES questions. x's coded inventory carries no market weight until
the numerals earn it an audience `[context: Brett 2026-08-05]`.

**The physical floor** `[derived]`: the simplest Sod Tori is a board game —
8×8, pieces, secret intentions. The collected pieces are **Tato coins**; the
logo is the coin's face. Chain bookkeeping, room codes and replays stay digital.

## RB · The Rulebook — ST I · the linear game (Seasons 1–4; the manual derives here)
Twelve rules; ▸PROPOSED marks await Brett's accept/strike. Each rule notes the
**[Sn]** season it enters. The engine carries one test group per rule — the
rulebook IS the test plan.
**Presentation** `[context: Brett 2026-08-07]`: the rulebook renders as **twin
stone tablets** — rounded-top slabs, chiseled grooves between rules, engraved
letterpress text (carve shadows), roman numerals I–XII in coin amber,
▸PROPOSED marks in coin glint. The Law of the Sod. The print manual inherits
the tablet as its rules-spread motif.

1. **RB-1 The board** `[S1]` — 8×8; eight Potuhs each on the back rows (tori's
   home row vs the uke's). Full 2D board — not lanes.
2. **RB-2 First move** `[S1]` ▸PROPOSED — the Tato coin flips; the flip winner is
   the first **tori**.
3. **RB-3 The turn** `[S1]` — the **tori** takes exactly one action with one
   Potuh: **Move, Goop, or Boop — three buttons.** Then roles swap: the uke
   becomes the tori. The turn is the sentence **tori · boop / goop · uke**.
4. **RB-4 The Move** `[S1]` — step one tile up, down, left, or right onto an
   EMPTY square (no diagonals). A Move may land ON a goop in **S2** (the walk-in,
   RB-8) and on a friendly Potuh in **S4**. Direction never turns mid-line until
   ST II's redirect.
5. **RB-5 The Goop** `[S1]` — summon a Tato on an empty adjacent tile of a
   **chosen cardinal direction**. From the packed back row only *forward* is
   legal (flanks are your own Potuhs, back is the wall); once a Potuh has stepped
   off, any open cardinal. +1 to the match goop, **credited to both players**
   (§15). ▸PROPOSED cap: one live summoned Tato per Potuh.
6. **RB-6 The Boop** `[S1]` — the tori strikes an adjacent **Tato** and launches
   it along the boop line. Booping targets **goop, not enemy Potuhs** — capture
   is what a launched goop does. **Own** Potuhs become boopable in **S3**
   (transport). Direction = the cardinal you boop.
7. **RB-7 The Launch & reach** `[S1]` — a booped goop travels a straight cardinal
   line, tile by tile, and comes to rest **3 tiles from the booping Potuh**
   (`REACH_I = 3`, the one tunable reach constant). A **walk-in** (S2) measures
   the 3 from the Potuh's *new* tile → 4 from where it stood. A relaunched goop in
   a chain travels **3 fresh tiles** from the point of contact (momentum reset).
8. **RB-8 Contact, displacement & the chain** `[S1]` — whatever strikes something
   **takes that thing's tile.** Resolutions:
   · goop → **enemy Potuh**: the Potuh **burrows into the sod** (hidden till game
   end); the goop **stops** (the chain ends). Whether the goop then occupies the
   vacated tile or vanishes is `goopDisappearsOnKnock` — default **off** (it
   occupies); ST II experiments with on.
   · goop → **goop**: the striker takes the tile; the struck goop **relaunches 3**
   (the chain); if it strikes something before resolving, it displaces that and
   the cascade continues, one link at a time.
   · goop → **a tori's own Potuh**: **transports** that Potuh 3 tiles.
   · at the **board edge**: the goop **bounces** (reflects) by default; no-bounce
   behind a flag. Worked line: two Potuhs in sight with goop on every tile
   between them — boop the goop and the chain runs the line until it burrows the
   far Potuh.
9. **RB-9 Legal directions** `[S1]` — every verb offers only its legal
   directions: Move needs an empty tile (S2+: or a goop; S4+: or a friendly
   Potuh) · Goop needs an empty adjacent tile · Boop needs an adjacent Tato with
   somewhere to travel. Illegal directions GREY OUT on the D-pad and never light
   on the board — from the starting rows left/right/back are grey, so the opening
   teaches itself. **Nothing turns mid-line until ST II (redirect).**
10. **RB-10 Victory, draw & resign** `[S1]` — down every enemy Potuh (burrow them
    all) to win; resign always available; no-legal-action passes. **Draw**
    ▸PROPOSED — every tile holds goop **and** the sides have equal Potuhs on the
    field **and** no Potuh sits in an enemy's line of sight. Board goop is worth
    nothing to the win — but every goop counts (both sides) to the leaderboards.
11. **RB-11 The goop economy** `[S1]` — the goop counter is **forever** and never
    decreases. **A match's goop is credited to BOTH players** `[context: Brett
    2026-08-11 — steal-on-win retired; it all flows to the kingdom]`. Feeds three
    leaderboards (total goop · total games · total wins) + the cumulative empire
    gauge (§15). CPU: goop counts, no W/L (v1).
12. **RB-12 Honesty** `[S1]` — self-play / bot / farmed matches are tagged and
    **excluded from goop credit, W/L, and sessions.** A farmable number means
    nothing.

## TS · Build & Deploy — Flutter + Firebase (locked 2026-08-05)
- Client: Flutter, BLoC, portrait web-first; iOS/Android later, same codebase.
- Engine: `lib/engine/` — pure Dart, no Flutter imports, deterministic; the
  SAME engine runs preview, animation, and stored truth.
- Auth: Firebase Anonymous (goop persists), upgradeable.
- Data: Firestore on `hot-potato-games`; a match IS its append-only move list —
  board state derived, never stored. Tables: users (displayName/goop/W/L) ·
  matches (code/mode/players/firstMove/moves[]/matchGoop/winner) · queue
  (goop-proximity, widening window) · scenarios (local JSON) · session events
  (emit-only). Full pseudo-tables + relationships + turn protocol + security:
  **`ARCHITECTURE.md`** — the architecture link, shipped beside this book.
- Hosting: site `sod-tori-i` (x keeps `sod-tori`). Rules: the canonical
  symlink `~/Potatuhs/.config/firestore.rules`, deployed via /deploy-rules.
- Sessions: emit `play`/`session`, gameId `sod_tori_i` (SESSIONS-CONTRACT.md).
- CPU v1: local greedy bot (capture > chain > develop); the constantly-training
  ladder is roadmap.
- Ship: engine tests gate → `flutter build web` (BUILD_ID dart-defines) →
  `firebase deploy --only hosting:sod-tori-i --project=hot-potato-games`.

## 02 · Logo System — the Tato Coin
- The mark IS **the Tato coin** `[context: Brett 2026-08-05]` — the pixel Tato
  struck like currency; one day the physical board-game piece. Mark = product.
- Ships on **transparency**: the white-plate export is RETIRED (2026-08-05).
  Source `assets/logo.png` is now alpha-transparent; the white original is kept
  as `assets/logo-onwhite.png` for the record, never for use.
- Render pixelated, never smoothed. Surfaces: night (default) · loam (cards) ·
  the shell gradient (sparingly).
- **The coin is the piece** `[context: Brett 2026-08-05]`: on game i's board,
  Potuhs and Tatos both render as coins — 2D faces until each earns its 3D
  geometry to superimpose on the board.
- Coin pixels, sampled `[context]`: face `#ECB550` · glint `#FCD23E` · struck
  edge `#B97319`. These are working tokens: the scrollbar is the coin face; the
  struck edge is the document divider color.
- `[placeholder]` a wordmark to pair with the coin — box lid + app header need it.
- `[placeholder]` clear space / min sizes / coin-back variant — unset until the
  wordmark exists.

## 03 · Color — DECLARED 2026-08-05 (dark mode is the brand)
Never black-and-white chess; never light mode.

Surfaces `[context: Brett 2026-08-05, values derived]`:
- Night `#14100A` (page ground) · Soil `#1E1811` (panels) · Loam `#2B2213`
  (cards) · Soot `#0F0C07` (deepest) · Bark `#55402A` (borders) · Moss
  `#2F3A22` (green surface) · panel line `#3A2E1D` · shadow line `#000000`.

Text: Wheat `#F0E7D2` (primary) · Straw `#C8BA9C` (secondary) · Dust `#93866C`
(tertiary) · Ink `#303030` (reserved for light chips: gold, shell).

Greens: Fern `#6B8E4E` — the living green (el-earth lineage).

The shimmer `[context]`: tri-orange `#E16416 → #E19816 → #E1C916`.
- `--gradient-shell` (135°) — hype surfaces, the coin's frame. Never the board.
- `--gradient-horizon` (90°, dark at both ends) — **the core theme**: the line
  where sky meets sod. Section rules, the cover, victory moments. Spend it rare.

The coin `[context: sampled from logo.png]`: Coin `#ECB550` (scrollbar thumb,
precious accents) · Glint `#FCD23E` (hover) · Coin-deep `#B97319` — **the
divider color** `[context: Brett 2026-08-05]`: all 1px separators carry it.

Doc alert (not a game color): `#E06A57`.

Sides & vitals `[context: theme.dart; roles reframed Brett 2026-08-10]`: the two
armies keep **fixed ownership colors** — green `#2E8B57` · red `#C0392B` — so you
always know your coins; they never swap. **tori / uke rides on top as the turn
layer** (option B, locked): whoever's turn it is is the **tori** (active — its
army takes the horizon/amber active treatment and is named in the turn bar); the
other is the **uke** (receiving). Roles swap every turn; the colors do not. HP
`#4ADF6A / #DFDF4A / #DF4A4A` belongs to later numerals — game i is 1HKO.

Element bench (16) `[context: elementColor()]` — **sod_tori_x inventory, held**:
fire `#E8573A` · water `#3A8FE8` · earth `#6B8E4E` · air `#8ABCD6` · body
`#CC7832` · mind `#7B68AE` · soul `#5C6B7A` · heart `#D9617B` · solar `#E8B830`
· lunar `#8890B0` · ecliptic `#4A4A6A` · seasonal `#6AAE6A` · dream `#B088CC` ·
nightmare `#5A3A6A` · lucid `#50BFBF` · prophetic **`[placeholder]` — source
hex MALFORMED (`#DAAEF50`, 7 digits, theme.dart); renders ecliptic slate until
reingest.**

Contrast (measured, sRGB): Wheat/Night 15.4 PASS · Wheat/Loam 12.7 PASS ·
Straw/Night 9.9 PASS · Straw/Loam 8.2 PASS · Gold/Night 11.3 PASS ·
Orange/Night 5.4 PASS · Fern/Night 5.1 PASS · Dust/Night 5.3 PASS captions ·
Player/Night 4.5 PASS at the limit · Enemy/Night 3.5 indicators/large only.

Rule: prose is Wheat on dark earth. Side and element colors carry state, never
body text. The shimmer belongs to the horizon.

## 04 · Typography
- Monospace is the voice `[context]` — the whole game speaks fixed-width.
  JetBrains Mono specified; Outfit for documentation prose only.
- GBA scale inherited from x: xs 8 · sm 10 · md 12 · lg 14 (header, bold) ·
  xl 18. Game i keeps the discipline: few sizes, one family, weight = hierarchy.
- Encoded alternate: `data-alt-display="bungee"` — parent display face. Open.
- Misuse: no display face in-game without a lock; no proportional battle
  numbers; no anti-aliased softness on pixel UI.

## 05 · Iconography
- Working systems: **the Tato coin** (identity, favicon, future physical piece)
  + codex numbering `N-name.png` (collector-grade, protected from day one).
- The 16-color element bench is x-era iconography, held.
- 

## 06 · Photography & Illustration
- Illustration: pixel-true (never smoothed) · **dusk palette** — dark earth
  browns and living greens, the horizon shimmer as the light source ·
  silhouette-first at coin size.
- Photography `[inherited: HPG]`: people playing, at the table. Two phones and
  a couch; later, Tato coins in hands. `[placeholder]` no REAL photography —
  first collection lands with game i's kitchen-table alpha.
- **Generated concepts (2026-08-05, gpt-image-1, disclosed)**: `assets/
  boardgame.jpg` (the physical board game — Tato coins in rows on a dark 8×8
  field, horizon on the box) and `assets/flier.jpg` (Boop-or-Goop Tournament
  Night poster — rubber-hose potatoes, MOST GOOP WINS, BRING A FRIEND; one AI
  text glitch, regenerate before print). Direction targets, not final art.
- x-era inventory: 175 codex portraits · 12+ NPC sprites · 7 tilesets · 15 maps.

## 07 · Mascots & Characters — DECLARED 2026-08-05
- **Potuh** — your pieces, the pawns. Everything is a pawn; that's the point.
  (Renamed from "Potay" 2026-08-05 — Potuh fits the Potatuhs ecosystem; Brett
  once typed "Potatuh" — standardized on **Potuh**, flag if the long form wins.)
- **Tato** — the summoned potato: projectile, shield, coin. The physical
  product line is Tatos.
- **tori / uke** `[context: Brett 2026-08-10]` — the turn ROLES, borrowed from
  Japanese martial arts: the **tori** (取り, executes the technique) is whose turn
  it is; the **uke** (受け, receives it) is the enemy this turn. They are
  designations, not creatures — Potuh and Tato remain the only pieces — and they
  SWAP every turn. The turn is a four-beat sentence: **tori · boop / goop · uke**
  — the active side boops or goops the receiver.
- **Goop** — the summon, and the loot `[context: Brett 2026-08-05]`. A Potuh
  focuses with such intensity that the earth answers — goop, in the form of a
  Tato. Every summon banks on the **goop counter**; defeat an opponent and
  their match goop is yours. The game for people who like the number going up.
  The turn is a four-beat sentence — **tori · boop / goop · uke**: the active
  side (tori) selects a Potuh, boops or goops, and the receiver (uke) takes it,
  then it's their turn. **"BOOP OR GOOP!"** is the verb beat inside it.
- **Potatyke is the first Potuh** `[context: Brett 2026-08-05]` (codex 001,
  level i). Potatot (002) and Potatohr (003) are the leveled ranks — visible
  from series iii, where a KO promotes the knocker up the line.
- **The sleeping words**: they were called Ouips before, and one day may be
  again — Ouip, Zeep, Cheep and the 166 species belong to **sod_tori_x**. That
  world exists in code, holds no market weight yet, and is not spoken by game i.
- The village cast (Root Farms Village canon) waits with x.

## 08 · UI Components
- The card is the atom: **loam fill, 2px bark line, 12px radius, 3px opaque
  black shadow**. Highlighted: 3px accent border + lift. Buttons are the card,
  pressed — hover lifts gold, press collapses flat.
- Side chips (green / red) mark **fixed ownership** (never swap); the **tori** —
  whose turn it is — takes the horizon/amber active treatment and is named in the
  turn bar. Territory tints mix ownership colors into loam. Game i is 1HKO — no HP
  bars on the board; the HP system stands ready in inventory.
- Stage composite: dark board, territory tints, the turn bar. Game i's real
  board is 8×8.
- **App surfaces — game i** `[context: Brett 2026-08-05]`, mocked in the book
  (chess-app simple; the scaffold reads these):
  - **Home**: goop chip top-right · horizon band · "BOOP OR GOOP" · four doors
    (Tutorial / Play / Practice / Compete).
  - **Tutorial**: the five rules as cards (pawn · T-move · Boop · Goop ·
    chains), then you play.
  - **Play**: CREATE GAME or ENTER CODE — the link is the game.
  - **Practice**: named scenarios (Your First Boop · Goop & Guard · The
    Two-Chain · Corner Trap), completion marks; nobody watches practice.
  - **Compete**: you vs a goop-proximity opponent, W/L in the corner,
    FIND MATCH.
  - **Game** `[context: Brett 2026-08-06]`: turn bar + goop chip up top · the
    8×8 board (checker-subtle loam, coins for pieces) · a **D-pad** (▲▼◀▶ +
    center confirm) in the space below the board — orient first, confirm
    second · three buttons: BOOP (orange) | GOOP (moss green) | MOVE
    (neutral). Board, pad, and buttons sit high; dead space falls below.
  - **Aiming (direction choice)** `[context: Brett 2026-08-05]` — chess.com's
    answer: tap your Potuh, tap the verb, and every VALID target lights up with
    a coin-amber tint and a direction arrow (▲▼◀▶, cardinal only) — Boop lights
    adjacent boopables, Goop lights empty adjacent tiles, Move lights empty
    steps. The pressed verb holds its pressed state; the others dim.
    **The D-pad** `[context: Brett 2026-08-06]` is the equal input path:
    valid directions light on the pad, invalid grey out; press a direction to
    ORIENT (the character faces it and the preview renders), press center —
    or the same direction again — to CONFIRM. Tapping a lit board target is
    equivalent. Two paths, one engine.
  - **The preview contract** `[context: Brett 2026-08-06; lineage: x's combat
    rule 11, "Preview = Pattern = Resolver"]` — the first tap on a lit target
    does NOT commit: it runs the REAL resolver ahead of time and renders the
    future — amber path dots, dashed-amber ghost pieces at every landing, dim
    ✕ on every predicted capture — **including full chain reactions**
    (momentum-reset cascades render end to end). Second tap commits, and the
    animation replays exactly what the preview promised. Book examples: plain
    launch · chain foretold · booping a fellow Potuh (repositioning at launch
    speed) · Tato-into-enemy capture. Any divergence between preview and
    resolution is a bug — one source of truth.
  - Presented as a **scroll-snap carousel** — the swipeable prototype is the
    spec `[context: Brett 2026-08-05]`.

## 09 · Shadows & Borders
- One shadow story: rest `3px 3px 0` black, opaque, no blur · lift `5px 5px 0`
  · pressed = none. A piece on the board, never a glow.
- Borders `[context: Brett 2026-08-05 — "the right color"]`: 2px **coin-deep
  `#B97319`** (cards, frames) · 1px coin-deep (separators) — borders and
  dividers are the same family: the coin's struck edge. Bark `#55402A` remains
  a surface token (phone frames), not the border color.
- The sidebar carries no right border — the coin scrollbar is its edge.
- Radii: 4 / 8 / 12 / pill. **The only glow permitted anywhere is the horizon's.**

## 10 · Motion
- Identity: **the chain** — Boop → launch → tile-by-tile travel → contact →
  capture → momentum reset → the chain continues. One readable beat at a time;
  motion answers "what just happened?", never spectacle.
- Tokens `[proposed]`: step 400ms · fast 120ms · `steps(1)` snap.
- **The verb contract** `[context: Brett 2026-08-05 — the virtual game must
  show what the physical game implies]`:
  - **GOOP (summon)** `[context: Brett 2026-08-06]`: press → summoner holds
    focus → target tile warms **flat coin-amber** (a solid tint at ~22% — a
    gradient wash is BANNED here) → a tiny **russet** circle (`--russet
    #7A4E1F`, the unrevealed coin) swells from the soil (one beat) → it
    **reveals as the golden coin** — a snap (`steps(1)`), not a fade (one
    beat) → goop counter ticks on the reveal. Two beats total.
  - **BOOP (launch)** `[context: Brett 2026-08-06 — smooth, settles where the
    state machine expects]`: press → the Tato **glides** — one smooth eased
    gesture (decelerating, a breath of overshoot) that settles EXACTLY on the
    square the engine resolved. The engine thinks tile-by-tile; the motion is
    continuous. Contact: the struck piece pops on impact (snap). Momentum
    resets → each chain link is its own clean glide, sequential and readable.
    The animation's final rest position must equal the engine's square —
    divergence is a bug.
- The one indulgence: the horizon shimmers (7s, ease, reduced-motion safe).
- `[placeholder]` no measured values — game i sets them fresh; x's Flame layer
  unsurveyed.

## 11 · Layout — the Board — DECLARED 2026-08-05
- **The layout IS the board**: 8×8, one row of eight each (bottom vs top,
  chess.com-familiar), portrait, board full-width, verbs at the thumb. The
  horizon sits above: sky, shimmer, sod.
- The book renders the start board plus a **mechanics carousel**, one slide
  per mechanic: Goop (summon on an adjacent tile, counter ticks) · Boop
  (full-distance tile-by-tile launch, blocked = no launch) · 1HKO (contact
  captures, no health) · momentum resets (a hit never dampens — full distance
  again) · the chain reaction (one Boop, multiple captures, fully readable) ·
  resolution order (select → verb → resolve to stillness → their move).
- **Game x** keeps the GBA stage (240×160, 3:2) as its own declared layout.
- Doc: containers 46/72/88rem · 8px base · the horizon rule under each section
  head is the doc's territory line.

## 12 · Voice & Tone — DECLARED 2026-08-05
- Register: **SILLY, and entirely about the goop** `[context: Brett
  2026-08-05 — "it's all about the goop"]`. Menus, victory, defeat, marketing:
  goop-oriented, delightfully unserious. The ONE exception: rules text states
  facts, monospace, exact — then the next line is about goop again. Chess
  words worn proudly.
- Words we use: **tori** (whose turn it is — executes the technique) · **uke**
  (the receiver, the enemy this turn) · **Potuh** · **Tato** · **Boop** (the
  adjacent hit: launch a Tato, capture a Potuh) · **Goop** (the summon, and the
  loot it banks) · **Claim** · and chess words worn proudly (pawn, capture, rank,
  board).
- Words we hold: **Ouip · Zeep · Cheep** — x vocabulary, asleep until its
  numeral.
- Words we never use: Pokeball · Pokémon · trainer · catch · vibes-y hedges.
- Samples: "BOOP OR GOOP!" · "Your turn, tori — boop or goop the uke." ·
  "GOOP GET. The earth provides. (+1 goop)" ·
  "Victory! Their goop is your goop now. That's 12 goop. Goop." · "Defeat.
  The goop remembers. The goop always remembers." · rules text stays exact:
  "Tato launched — 3 tiles. Contact. Capture."
- External marketing defers to the umbrella voice (Butter).

## 13 · AI Policy
- AI-assisted, human-directed; disclosure default-on.
- The CPUs `[context: Brett 2026-08-05]`: **training constantly against each
  other to determine the best strategy — and you can always vs one** (the
  always-open dojo). CPU matches are tagged CPU: no human-session credit, no
  leaderboard or W/L credit.
- Rules docs are human-owned; AI proposes, the bible decides.
- Honest sessions · real feedback only · player data never into third-party tools.

## 14 · Sub-brands & Ecosystem
- Parent chain: Potatuhs → HPG (Clubs) → Sod Tori. Siblings: Explore The Cell ·
  Tater Dash.
- **The series is the sub-brand architecture — ten games, one name**
  `[context: Brett 2026-08-05]`, and **each game is four permanent seasons**
  `[context: Brett 2026-08-11]`: i the linear game (S1 boop-or-goop → S2
  walk-into-goop → S3 boop-your-own → S4 walk-into-your-own) · ii redirect ·
  iii levels/profit · iv the set board · v–ix sealed (board resize and
  fire/water/air enter here) · x everything (exists today; built first, shipped
  last, ~10 years out). **Every (numeral × season) stays live forever** — "ST I
  S1", "ST III S3" is how players name the mode they want. A numeral unseals only
  when the one before it is fun; a season unlocks its one rule on top of a
  still-playable predecessor.
- Sub-products: the **Tato coin line** (collected physical pieces) · Plate
  Edition (print-to-play). "Tori Chess" retires into x's Classic-mode label.
- Long-range: the Potato World Saga (7-game arc) — architecture beyond x.
- Recorded deviation from parent: the **dark-horizon surface system** + the
  all-mono voice.

## 15 · Governance — the Goop & its Prize
- **The governing question** `[context: Brett 2026-08-05]`: what does the most
  goop win? Under the **empire frame** `[context: Brett 2026-08-11]`, goop is
  never stolen — it's **gathered**: every match's goop flows to *both* players
  and up to the kingdom. The more goop in the world, the better.
- **The four gauges** `[context: Brett 2026-08-11]` — three leaderboards plus one
  shared meter:
  - **Total goop** — most goop gathered. A pure flex.
  - **Total games** — who plays the most; paired with high goop, the truest
    master signal.
  - **Total wins** — the weightiest for rank.
  - **The empire gauge** — *cumulative all-time goop* (the community's shared
    number). Its thresholds trip **community-wide events and tournaments.**
- **The prize `[proposed — awaits Brett's ruling]`**: each season, the player
  holding the most goop is struck a physical, numbered **Tato coin** (one per
  season, never sold) + a named seat at the annual HPG tournament. Goop
  becomes the coin it was always a picture of. Alternatives: a loud silly
  leaderboard title · Practice-scenario naming rights · the season's board
  skin. Rule: the prize must be worth wanting and impossible to buy.
- **Goop integrity**: a real match credits **both** humans (no farm — farming
  collapses into play); CPU matches earn no leaderboard or W/L credit;
  self-play/bot loops are tagged and excluded. A farmable number means nothing.
- Authorities: this DESIGN.md (brand) · `hotpotatogames/_status/sod_tori.md`
  (series status board) · `docs/MECHANICS_BIBLE.md` (x rules) ·
  `docs/GAME_CANON.md` (lore) · per-game `theme.dart` (app tokens — mirror this
  spec after reingest).
- Naming: umbrella `{brand}-{category}-{label}-{season}.{type}` for brand
  assets; codex `N-name.png` for species. Both stand.
- `[placeholder]` session telemetry not emitting — lands with game i
  (gameId `sod_tori_i`, per SESSIONS-CONTRACT.md).
- `[placeholder]` game i's theme.dart does not exist yet — this book's
  dark-horizon tokens are its birth certificate; reingest on scaffold.
- Registry: brands.potatocore.com. Propagation one-way: lock → theme → in-app QA.

---

## Open items (the lock queue)
1. Wordmark to pair with the Tato coin (box lid + app header).
2. Display A/B: all-mono (as shipped) vs Bungee display (parent).
3. Prophetic element hex — malformed `#DAAEF50` in x's theme.dart; fix at
   x's reingest.
4. Game i motion values — set fresh at scaffold; x's Flame extraction still queued.
5. Sessions instrumentation (gameId `sod_tori_i`; SESSIONS-CONTRACT.md).
6. The v0.1 GBA-light system is retired but x's in-app theme still renders
   light — decide whether x reskins to the dark horizon or keeps light as its
   own era's look until its numeral.
7. **Reach arithmetic** — RB-7 encodes `REACH_I = 3` (goop rests 3 tiles from the
   booping Potuh; walk-in → 4). Brett's worked example ("col-2's goop ends over
   col-6") lands over col-4 at reach 3 — reconcile the constant (is `REACH_I` 3,
   or larger?) at scaffold. One knob.
8. **Empire gauge scope** — cumulative all-time goop is framed as the community's
   *shared* number (global threshold for events). Confirm whether it also ranks
   per-player all-time, or stays purely communal.

## Changelog
- **v0.5 · 2026-08-11** — the linear season-ladder pass. §DP rebuilt: **1 game /
  year, 4 seasons / year**, each season adding one interaction rule, and **every
  (numeral × season) a permanent named mode** ("ST I S1"). ST I re-baselined to a
  **fully linear** game across S1–4 (S1 Move/Goop/Boop → S2 walk-into-goop → S3
  boop-your-own → S4 walk-into-your-own); redirect confirmed as **ST II** (S5–8),
  levels as **ST III**. §RB rewritten to match — directional Goop, Boop launches
  goop (reach 3 from the Potuh, `REACH_I`), **capture = burrow into the sod**,
  goop→goop chain, **edge bounce** (default) and **`goopDisappearsOnKnock`**
  (default off) as flags, goop transports friendly Potuhs, and the **win/lose/
  draw** (draw = every tile goop'd · equal Potuhs · no line of sight). Economy
  flipped: **steal-on-win retired**, a match's goop credits **both** players
  (farming collapses into play); §15 now names **four gauges** — total goop /
  games / wins + the cumulative **empire gauge** gating community events. §13/§14
  updated; two open items logged (reach arithmetic, empire-gauge scope).
- **v0.4.3 · 2026-08-10** — the tori/uke pass: the two players reframed as
  **tori** (取り, whose turn it is — executes) and **uke** (受け, the receiver/
  enemy), martial-arts roles that SWAP each turn. Option B locked: green/red stay
  fixed ownership, tori/uke rides on top as the turn layer (the tori's army takes
  the horizon/amber treatment and is named in the turn bar). The turn is the
  sentence **tori · boop / goop · uke**. Name meaning layered — Sod = soil + the
  Hebrew סוֹד (secret/mystery, Kabbalah's deepest reading); Tori = the martial
  取り + the torus fields. §01/§03/§07/§08/§12 updated.
- **v0.4.2 · 2026-08-07** — the rulebook re-set as twin stone tablets (The Law
  of the Sod, I–XII, engraved letterpress on chiseled slabs); fixed the
  numbered-list rendering bug that broke bold terms onto their own lines.
- **v0.4.1 · 2026-08-06** — Brett's input rulings: three buttons (BOOP · GOOP ·
  MOVE); Move is one step in ANY cardinal direction (T proposal superseded);
  all verbs omnidirectional with illegal directions greyed (pad) / unlit
  (board); the D-pad added between board and buttons — orient first, center
  confirms; game-screen items moved up; goop summon re-animated (russet seed
  swells → gold snap reveal, flat amber tile warm — no gradient); launch
  re-animated (smooth eased glide settling on the engine's square).
- **v0.4 · 2026-08-06** — the handoff pass: the complete Rulebook (RB-1…12,
  all former opens closed as marked proposals — Move-on-the-board, the T
  defined, one-Tato-per-Potuh cap, launch reach 3, elimination victory, coin
  flip for first move, billiards contact resolution); TS Build & Deploy sheet
  (Flutter+Firebase locked, engine-as-single-source, hosting sod-tori-i);
  ARCHITECTURE.md created (pseudo-tables, relationships, turn protocol,
  match-is-its-move-list doctrine); the preview contract (first tap previews
  chains end-to-end, second commits); branded ICP written and the
  book·ICP·GTM triangle cross-linked.
- **v0.3 · 2026-08-05** — the goop-governance pass: game-i icon set drawn
  (§05, twelve marks); generated concepts landed (§06 — board game + flier,
  gpt-image-1, disclosed); app surfaces became a swipeable carousel (§08);
  borders re-pointed to the coin's struck edge and the sidebar's scroll
  border removed (§09); Layout rebuilt as the Board + mechanics carousel
  (§11); voice declared silly-and-all-about-the-goop (§12); CPUs declared
  constantly-training and always-versable (§13); the ten games tabled (§14);
  governance reframed around the goop prize, proposal pending Brett's ruling
  (§15).
- **v0.2.2 · 2026-08-05** — app surfaces visualized: six phone mockups in §08
  (Home's four doors, Tutorial, Play, Practice, Compete, and the 8×8 game
  board with BOOP/GOOP action bar); §10 gains the verb animation contract with
  live CSS demos (Goop: shimmer-glow then coin-rise, two beats; Boop:
  tile-by-tile held-position travel, contact pop, momentum reset); personality
  updated (Simple replaces Deep; Horizon and Strategic replace Horizon-lit and
  Exact).
- **v0.2.1 · 2026-08-05** — the Boop-or-Goop pass: pieces renamed Potuhs;
  Goop declared (the summon verb + the banked loot counter; winner takes the
  loser's match goop); game i spec sharpened (8×8 one-row-each chess.com
  setup; Tutorial/Play/Practice/Compete; goop-matched Compete, W/L tracked,
  elo later); pieces render as coins until 3D geometry; coin colors sampled
  (#ECB550/#FCD23E/#B97319) → scrollbar is the coin, dividers are the struck
  edge; container centering strengthened (section heads + horizon rules on
  the center axis).
- **v0.2 · 2026-08-05** — dark-horizon pass (Brett's direction): dark mode
  locked, earth browns/greens, shimmer horizon as core theme; key art retired;
  logo renamed the Tato coin and cut to transparency; book reframed around the
  numeral series; Potuh/Tato vocabulary declared; Ouip-era words put to sleep
  until x; firestore-symlink placeholder resolved (restored 2026-08-05).
- **v0.1 · 2026-08-03** — the preparatory run: GBA-light system extracted from
  SodToriTheme, the onion inventoried, Era I–IV ladder declared for shredding.
