Files
lifegame/shared/BRANCHING-TEMPLATE.md
Kevin 220f70d342 Add the real 211-tile / 5-stat game content
shared/tile-inventory.json + shared/roll-tables.json + shared/GAME-REVIEW.md
+ shared/BRANCHING-TEMPLATE.md were parsed from the design doc in a separate
session and were already sitting untracked in this repo. This is the real,
authoritative game content — 211 tiles across 12 segments, 5 player stats
(cash/love/education/wealth/age), 48 placeholder roll tables — far more
complete than the hand-sketch-inspired board built earlier.

Adds shared/tileInventory.js and shared/rollTables.js: mechanical
`export default {...}` wrappers around the same JSON (kept as-is alongside
them as the raw source reference), so the content is importable both by the
server and by the browser fetching shared/*.js with zero bundler — the same
pattern every other file in shared/ already uses. Avoids relying on JSON
module import-attribute syntax, whose support is uncertain on node:20-alpine
(the Dockerfile's base image).

Also includes assets/colors.json and assets/tile_types.json (an apparently
separate, incomplete transcription of the hand sketch) — not wired into
anything yet, just brought into version control.

Appends integration-gap TODOs to GAME-REVIEW.md: 85 inline_table tiles have
a die size but no table content anywhere in the parsed files; payday/
cash_bonus amounts are undefined everywhere; multi-table roll_table_ref
tiles (2-3 tables at once, 22 of them) have no documented combination rule.
2026-07-28 10:05:55 -07:00

76 lines
3.1 KiB
Markdown

# Life Journey — Branching / Adjacency Template
The design doc lists tiles **in order within each segment**, but it does not say
how the twelve segments connect, or where the forks and merges are. That wiring
is what turns a pile of tile-lists into a playable board graph. Fill this in and
I'll turn it into a connection map the game can walk.
## The twelve segments (as parsed, in doc order)
| # | Segment id | Tiles | First tile → Last tile |
|---|---|---|---|
| 1 | `starting_strip` | 7 | Graduation party → STOP |
| 2 | `career` | 22 | Pay Day → STOP |
| 3 | `investment` | 20 | Pay Day → Dice Space |
| 4 | `investment_bottom` | 23 | Pay Day → Dice Space |
| 5 | `high_risk` | 11 | Dice Space → Dice Space |
| 6 | `gap_year` | 17 | Pay Day → STOP |
| 7 | `education` | 12 | Pay Day → Graduation Gift |
| 8 | `relationship_top` | 20 | Pay Day → Aging Parents |
| 9 | `relationship_bottom` | 26 | Pay Day → … |
| 10 | `retirement_top` | 11 | Pay Day → Hobby |
| 11 | `retirement_middle` | 22 | ½ Life Crisis → … |
| 12 | `retirement_bottom` | 20 | Pay Day → … |
The `(top)/(bottom)/(middle)` names strongly suggest parallel lanes on the
physical board — that's exactly the geometry only your layout knows.
## What I need — two things
### 1. The STOP forks
There are **3 STOP tiles** (end of `starting_strip`, `career`, `gap_year`). Each
says "roll D8 to age, then pick your new path." Tell me the choices at each:
```
STOP after starting_strip → player may choose: [ career | education | gap_year ] ← confirm/edit
STOP after career → player may choose: [ ? | ? | ? ]
STOP after gap_year → player may choose: [ ? | ? | ? ]
```
(Do investment / high_risk / relationship / retirement also branch off a STOP,
or are they entered some other way? Note it.)
### 2. Segment connections (the graph)
For **each segment**, tell me what its **entry** connects from and what its
**exit** connects to. Easiest format — just fill the arrows, referencing segment
ids and tile numbers (0-indexed within the segment):
```
career: enters from STOP#1 → exits to STOP#2
investment: enters from ?? → exits to ??
investment_bottom: enters from ?? → exits to ??
high_risk: enters from ?? → exits to ??
...
```
If a segment has a **mid-path fork or merge** (e.g. tile 8 of `career` splits to
`investment` tile 0 AND continues to tile 9), write it like:
```
career tile 8 → forks to: career tile 9 OR investment tile 0
relationship_top tile 19 → merges into retirement_top tile 0
```
Don't worry about being formal — bullet points in plain English are fine. Photos
or a rough hand-drawn arrow diagram of the board work too; I'll translate.
## What happens after you send this
I convert it into a `board-graph.json` — every tile gets a `next` (or list of
`next` for forks) so the game can move tokens along real paths. **Only then** do
coordinates get authored (against the real artwork), because a token's screen
position and its graph position are two different things and both need the final
layout to exist first.