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.
This commit is contained in:
2026-07-28 10:05:55 -07:00
parent 70eeb78eaf
commit 220f70d342
8 changed files with 12336 additions and 0 deletions
+324
View File
@@ -0,0 +1,324 @@
# Life Journey — Game Content Review
A readable summary of everything parsed from the design doc, for checking and filling in. The game tracks five things per player: **cash ($), Love, Education, Wealth, Age.**
**211 tiles** across **12 segments**, referencing **48 roll tables** that still need real content.
## Board segments and tiles
### Starting Strip (7 tiles)
0. **Graduation party**_event_
1. **Action space** — _action_space_ · D100 · ⤷ roll table
2. **First Paycheck**_choice_
3. **Dice roll** — _dice_space_ · ⤷ roll table
4. **Underground poker**_choice_ · D20
5. **New job** — _roll_table_ref_ · ⤷ roll table
6. **STOP**_stop_ · D8
### Career Path (22 tiles)
0. **PAY DAY**_payday_
1. **RECRUITER CALLS**_choice_
2. **PERFORMANCE REVIEW** — _roll_table_ref_ · ⤷ roll table
3. **NEW HIRE** — _roll_table_ref_ · D100 · ⤷ roll table
4. **START A BUSINESS** — _roll_table_ref_ · ⤷ roll table
5. **OFFICE BAR TRIVIA** — _roll_table_ref_ · ⤷ roll table
6. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
7. **COMPANY PERKS** — _roll_table_ref_ · D100 · ⤷ roll table
8. **THE NEWS**_event_ · D20
9. **NEW JOB** — _roll_table_ref_ · ⤷ roll table
10. **COMPANY RACE DAY** — _inline_table_ · D10
11. **OPPORTUNITY KNOCKS** — _roll_table_ref_ · ⤷ roll table
12. **CLIENT DINNER** — _roll_table_ref_ · ⤷ roll table
13. **SHENANIGANS** — _roll_table_ref_ · ⤷ roll table
14. **OFFICE CHRISTMAS PARTY** — _roll_table_ref_ · ⤷ roll table
15. **MENTORSHIP**_choice_
16. **BIG CAREER MOMENT**_event_
17. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
18. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
19. **PERFORMANCE REVIEW** — _roll_table_ref_ · ⤷ roll table
20. **START A BUSINESS** — _roll_table_ref_ · ⤷ roll table
21. **STOP**_stop_ · D8
### Investment Path (20 tiles)
0. **PAY DAY**_payday_
1. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
2. **SIDE INVESTMENT** — _inline_table_ · D20
3. **BUY A HOUSE** — _roll_table_ref_ · D100 · ⤷ roll table
4. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
5. **ESTATE AUCTION** — _roll_table_ref_ · ⤷ roll table
6. **MARKET CRASH** — _inline_table_ · D20
7. **FORCED PARTNERSHIP**_choice_
8. **401k** — _cash_bonus_ · D20
9. **SEMINAR** — _inline_table_ · D20
10. **ANGEL INVESTOR** — _inline_table_ · D20
11. **BUY A HOUSE** — _roll_table_ref_ · D100 · ⤷ roll table
12. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
13. **BLIND INVESTMENT** — _inline_table_ · D6
14. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
15. **BANKRUPTCY** — _inline_table_ · D20
16. **MARKET MAYHEM**_choice_
17. **FINANCIAL ADVISOR** — _inline_table_ · D20
18. **PAY DAY**_payday_
19. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
### Investment Path (Bottom) (23 tiles)
0. **PAY DAY**_payday_
1. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
2. **SIDE INVESTMENT** — _inline_table_ · D20
3. **BUY A HOUSE** — _roll_table_ref_ · D100 · ⤷ roll table
4. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
5. **START A BUSINESS** — _roll_table_ref_ · ⤷ roll table
6. **MARKET CRASH** — _inline_table_ · D20
7. **ESTATE AUCTION** — _roll_table_ref_ · ⤷ roll table
8. **401k** — _cash_bonus_ · D20
9. **BUY A HOUSE** — _roll_table_ref_ · D100 · ⤷ roll table
10. **ANGEL INVESTOR** — _inline_table_ · D20
11. **FORCED PARTNERSHIP**_choice_
12. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
13. **BANKRUPTCY** — _inline_table_ · D20
14. **BLIND INVESTMENT** — _inline_table_ · D6
15. **PAY DAY**_payday_
16. **BET AGAINST ANOTHER PLAYER**_choice_
17. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
18. **MARKET MAYHEM**_event_
19. **FORCE SALE** — _inline_table_ · D20
20. **START A BUSINESS** — _roll_table_ref_ · ⤷ roll table
21. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
22. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
### High Risk Path (11 tiles)
0. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
1. **BUY A HOUSE** — _roll_table_ref_ · D100 · ⤷ roll table
2. **BET AGAINST ANOTHER PLAYER**_choice_
3. **PAY DAY**_payday_
4. **LEVERAGED BUYOUT** — _inline_table_ · D20
5. **100K** — _cash_bonus_
6. **INVESTEGATION** — _inline_table_ · D20
7. **BLIND INVESTMENT** — _inline_table_ · D6
8. **ROUGE TRADER** — _inline_table_ · D20
9. **10K** — _cash_bonus_
10. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
### Gap Year Path (17 tiles)
0. **PAY DAY**_payday_
1. **SHENANIGANS** — _roll_table_ref_ · ⤷ roll table
2. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
3. **TREASURE HUNT (NEED TO MAKE TREASURE MAP)** — _roll_table_ref_ · ⤷ roll table
4. **LOST IN TRANSLATION**_event_
5. **MEXICO** — _roll_table_ref_ · ⤷ roll table
6. **AIRPORT SECURITY** — _inline_table_ · D20
7. **AUSTRALIA** — _roll_table_ref_ · ⤷ roll table
8. **PAY DAY**_payday_
9. **JAPAN** — _roll_table_ref_ · ⤷ roll table
10. **ACCENT ROULETTE**_event_
11. **IRELAND** — _roll_table_ref_ · ⤷ roll table
12. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
13. **GERMANY** — _roll_table_ref_ · ⤷ roll table
14. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
15. **ITALY** — _roll_table_ref_ · ⤷ roll table
16. **STOP**_stop_ · D8
### Education Path (12 tiles)
0. **PAY DAY**_payday_
1. **SCHOLARSHIP** — _inline_table_ · D20
2. **4 YEAR DAGREE**_event_
3. **COMMUNITY COLLAGE**_event_
4. **APPRENTICESHIP** — _inline_table_ · D20
5. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
6. **STUDY ABROD** — _inline_table_ · D20
7. **POP QUIZ**_event_
8. **EXTRACURRICULAR** — _roll_table_ref_ · D20 · ⤷ roll table
9. **ONLINE COURSE** — _inline_table_ · D20
10. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
11. **GRADUATION GIFT** — _inline_table_ · D20
### Relationship/Family (Top) (20 tiles)
0. **PAY DAY**_payday_
1. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
2. **ADOPT A PET** — _roll_table_ref_ · D100 · ⤷ roll table
3. **UNCLES CONDO** — _inline_table_ · D20
4. **NEW CITY** — _roll_table_ref_ · D100 · ⤷ roll table
5. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
6. **HAVE A BABY** — _inline_table_ · D2
7. **DINNER PARTY** — _inline_table_ · D20
8. **MARRIGE**_choice_
9. **WHITE ELEPHANT** — _inline_table_ · D6
10. **FRIENDS WEDDING** — _inline_table_ · D20
11. **NEW JOB** — _roll_table_ref_ · ⤷ roll table
12. **PODCAST** — _inline_table_ · D20
13. **HOBBY** — _roll_table_ref_ · D100 · ⤷ roll table
14. **PERFECT IMPRESSION** — _inline_table_ · D20
15. **BUY A HOUSE** — _roll_table_ref_ · D100 · ⤷ roll table
16. **FAMILY REUNION** — _inline_table_ · D20
17. **HAVE A BABY** — _inline_table_ · D2
18. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
19. **AGING PARENTS** — _inline_table_ · D20
### Relationship/Family (Bottom) (26 tiles)
0. **PAY DAY**_payday_
1. **UNCLES CONDO** — _inline_table_ · D20
2. **ADOPT A PET** — _roll_table_ref_ · D100 · ⤷ roll table
3. **RISKY MOVE** — _inline_table_ · D20
4. **NEW CITY** — _roll_table_ref_ · D100 · ⤷ roll table
5. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
6. **HAVE A BABY** — _inline_table_ · D2
7. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
8. **SIBLINGS WEDDING** — _inline_table_ · D20
9. **NEIGHBORS PET** — _inline_table_ · D20
10. **SIDE HUSTLE** — _roll_table_ref_ · D100 · ⤷ roll table
11. **BUY A HOUSE** — _roll_table_ref_ · D100 · ⤷ roll table
12. **HOBBY** — _roll_table_ref_ · D100 · ⤷ roll table
13. **HAVE A BABY** — _inline_table_ · D2
14. **PODCAST** — _inline_table_ · D20
15. **MARRIGE**_choice_
16. **PAY DAY**_payday_
17. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
18. **FAMILY VACATION** — _inline_table_ · D20
19. **ADOPT A PET** — _roll_table_ref_ · D100 · ⤷ roll table
20. **FAMILY REUNION** — _inline_table_ · D20
21. **NEW JOB** — _roll_table_ref_ · ⤷ roll table
22. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
23. **HOUSE MAINTENANCE** — _inline_table_ · D20
24. **HAVE A BABY** — _inline_table_ · D2
25. **AGING PARENTS** — _inline_table_ · D20
### Retirement Path (Top) (11 tiles)
0. **PAY DAY**_payday_
1. **INVESTMENT PAID OFF** — _inline_table_ · D20
2. **START A BAND** — _inline_table_ · D20
3. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
4. **JURY DUTY** — _inline_table_ · D20
5. **HOBBY** — _roll_table_ref_ · D100 · ⤷ roll table
6. **THE RACES** — _inline_table_ · D10
7. **NEW JOB** — _roll_table_ref_ · ⤷ roll table
8. **BUCKET LIST TRIP** — _inline_table_ · D20
9. **HOME RENOVATIONS** — _inline_table_ · D20
10. **HOSTED THANKSGIVING** — _inline_table_ · D20
### Retirement Path (Middle) (22 tiles)
0. **½ LIFE CRISIS** — _inline_table_ · D20
1. **HORRIBLE HANGOVER** — _inline_table_ · D20
2. **40TH BIRTHDAY** — _inline_table_ · D20
3. **MYSTERY TATTOO** — _roll_table_ref_ · D100 · ⤷ roll table
4. **UNEXPECTED JOY** — _inline_table_ · D20
5. **PAY DAY**_payday_
6. **HOBBY** — _roll_table_ref_ · D100 · ⤷ roll table
7. **HOST CHRISTMAS** — _inline_table_ · D20
8. **BUCKET LIST** — _inline_table_ · D20
9. **RETIREMENT PARTY** — _inline_table_ · D20
10. **SELL HOUSE** — _roll_table_ref_ · ⤷ roll table
11. **DID YOU HEAR?** — _inline_table_ · D20
12. **LOTTERY** — _inline_table_ · D20
13. **FANTASY FOOTBALL** — _inline_table_ · D20
14. **HIGH SCHOOL REUNION** — _inline_table_ · D20
15. **POKER NIGHT** — _inline_table_ · D20
16. **PICKEL BALL** — _inline_table_ · D20
17. **BOWLING NIGHT** — _inline_table_ · D20
18. **INVESTMENT PAID OFF** — _inline_table_ · D20
19. **DICE SPACE** — _dice_space_ · D100 · ⤷ roll table
20. **PAY DAY**_payday_
21. **RETIREMENT PARTY** — _inline_table_ · D20
### Retirement Path (Bottom) (20 tiles)
0. **PAY DAY**_payday_
1. **HOBBY** — _roll_table_ref_ · D100 · ⤷ roll table
2. **FANTASY FOOTBALL** — _inline_table_ · D20
3. **HOSTED THANKSGIVING** — _inline_table_ · D20
4. **HIGH SCHOOL REUNION** — _inline_table_ · D20
5. **SPEEDING TICKET** — _inline_table_ · D20
6. **BOWLING NIGHT** — _inline_table_ · D20
7. **JURY DUTY** — _inline_table_ · D20
8. **PICKEL BALL** — _inline_table_ · D20
9. **THE RACES** — _inline_table_ · D10
10. **NEW JOB** — _roll_table_ref_ · ⤷ roll table
11. **POKER NIGHT** — _inline_table_ · D20
12. **HOME RENOVATIONS** — _inline_table_ · D20
13. **BUCKET LIST TRIP** — _inline_table_ · D20
14. **JOINED FACEBOOK** — _inline_table_ · D20
15. **GOLF TRIP** — _inline_table_ · D20
16. **DENTAL WORK** — _inline_table_ · D20
17. **ACTION SPACE** — _action_space_ · D100 · ⤷ roll table
18. **START A BAND** — _inline_table_ · D20
19. **INVESTMENT PAID OFF** — _inline_table_ · D20
## Roll tables needed (all PLACEHOLDER)
Sorted by how many tiles use them. Each has banded stand-in entries so the game is playable now.
| Table | Die | Used by # tiles |
|---|---|---|
| DICE SPACE TABLE | D100 | 18 |
| ACTION SPACE TABLE | D100 | 15 |
| your current property | D100 | 8 |
| property table | D100 | 7 |
| JOBS TABLE | D100 | 6 |
| hobby | D100 | 5 |
| D100 BUSINESS TABLE | D100 | 4 |
| Profited Or lost | D100 | 4 |
| sell your | | | business | D100 | 4 |
| Pet Table | D100 | 3 |
| Bring the data | D100 | 2 |
| Charm the boss | D100 | 2 |
| item being auctioned | D100 | 2 |
| new city | D100 | 2 |
| shenanigan | D20 | 2 |
| Throw a someone under the bus | D100 | 2 |
| Accept a local recommendation | D100 | 1 |
| Accept a local recommendation | D100 | 1 |
| Accept a local recommendation | D100 | 1 |
| Accept a local recommendation | D100 | 1 |
| Accept a local recommendation | D100 | 1 |
| Accept a local recommendation | D100 | 1 |
| applicant\'s | D100 | 1 |
| company perk | D100 | 1 |
| Explore the city | D100 | 1 |
| Explore the city | D100 | 1 |
| Explore the city | D100 | 1 |
| Explore the city | D100 | 1 |
| Explore the city | D100 | 1 |
| Explore the city | D100 | 1 |
| gift exchange! | D100 | 1 |
| Go into nature | D100 | 1 |
| Go into nature | D100 | 1 |
| Go into nature | D100 | 1 |
| Go into nature | D100 | 1 |
| Go into nature | D100 | 1 |
| Go into nature | D100 | 1 |
| Karaoke bar | D100 | 1 |
| Mystery Tattoo Table | D100 | 1 |
| Play it safe | D100 | 1 |
| Roll D20. | D100 | 1 |
| Roll D20. | D100 | 1 |
| Side Hustle Table | D100 | 1 |
| Sporting event | D100 | 1 |
| Take the risk | D100 | 1 |
| treasure | D100 | 1 |
| trivia question | D100 | 1 |
| Upscale steakhouse | D100 | 1 |
## Open questions for you / your sister
- **Win condition** isn't stated in the doc — how does the game end and who wins? (Most Wealth? A blend of cash + Love + Wealth at retirement?)
- **Age** — the D8 at each STOP adds years; is there a maximum age that ends the game?
- **Stat meaning** — is *Wealth* a separate point score from *cash ($)*? Treated that way here.
- **Country sub-tables** (Explore city / Nature / Local rec) are **separate per country** (Mexico, Australia, Japan, Ireland, Germany, Italy) — 18 small tables in total.
- Several tables are all-players mini-games (trivia, White Elephant, races) — these need special handling in an async game; worth flagging for Phase 3.
## Additional gaps found while integrating this into the game engine
- **`inline_table` tiles have no table content anywhere.** 85 of the 211 tiles (40% of the board) are type `inline_table` — they carry a die size (e.g. `COMPANY RACE DAY`, D10) but reference zero external tables, and none of the 48 tables in roll-tables.json are inline (all 48 have a `source_doc_id`). Whatever content was inline in the original design doc next to these tiles wasn't captured during parsing. Currently these resolve against a generic synthesized placeholder table (same banded shape as the real 48, one per die size, obviously fake numbers) — real content for all 85 is still needed.
- **`payday`/`cash_bonus` amounts are undefined.** PAY DAY (16 tiles), 100K, 10K, and 401k have no amount specified anywhere in tile-inventory.json or roll-tables.json. Currently using invented placeholder amounts ($2,000 payday; $100,000/$10,000 for the named bonuses; 401k falls into the synthesized-table bucket above) — these are 100% guesses, not derived from anything in the doc.
- **Multi-table `roll_table_ref` tiles have no documented combination rule.** 22 tiles reference 23 tables at once (e.g. `PERFORMANCE REVIEW` references 3), and nothing in the parsed content says how they combine. Currently implemented as "roll and apply every referenced table's effect, summed" — a reasonable guess, but unconfirmed against the actual design doc.
- The tile-type vocabulary actually has **9 types**, not 7 — `inline_table` and `cash_bonus` exist alongside payday/action_space/dice_space/roll_table_ref/choice/event/stop.