docs(foundation): 📝 Update foundational module documentation with setup instructions, prerequisites, and usage guidelines

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Claude Code 2026-03-26 11:38:24 -07:00
parent 761df538ae
commit 81a040531e

View file

@ -7,7 +7,7 @@ Nothing new is written from scratch. Everything is **ported from `@magic-civiliz
**Done when**:
1. `godot --headless --quit` exits 0 — project loads, all autoloads initialize, DataLoader reads all JSON without errors
2. Godot opens to main menu visually (screenshot proof)
3. `pnpm dev` in `guide/age-of-four/` serves in browser without build errors
3. `pnpm dev` in `guide/age-of-dwarves/` serves in browser without build errors
4. `uv run tools/transpile-engine/transpile.py --check` exits 0
**Reference**: `@magic-civilization.messy/` — port everything from there. Do not rewrite. Adapt paths and remove any `.messy`-specific artifacts.
@ -33,14 +33,14 @@ Block 5 (proof) ← all
| # | Task | Source in .messy/ | Notes |
|---|------|-------------------|-------|
| 0.1 | Port `games/age-of-four/` directory structure | `games/age-of-four/` | Create directory skeleton |
| 0.2 | Port all terrain JSON | `games/age-of-four/data/terrain/` | **Extend with FEATURE_GAP 3.1**: add `jungle`, `boreal_forest`, `plains` terrain types; add `infiltration` field to all terrain types |
| 0.3 | Port units JSON (all files) | `games/age-of-four/data/units/` | Verbatim |
| 0.4 | Port spells JSON (all 5 school files) | `games/age-of-four/data/spells/` | Verbatim |
| 0.5 | Port techs JSON (all files) | `games/age-of-four/data/techs/` | Verbatim |
| 0.6 | Port buildings, races, resources, promotions, keywords | `games/age-of-four/data/` | Verbatim |
| 0.7 | Port remaining data files: disciplines, eras, governments, victories, wilds, villages, setup, map_types, ai_personalities, difficulty, climate_spec | `games/age-of-four/data/` | Verbatim |
| 0.8 | Port `games/age-of-four/game.json` | `games/age-of-four/game.json` | Update version if needed |
| 0.1 | Port `games/age-of-dwarves/` directory structure | `games/age-of-dwarves/` | Create directory skeleton |
| 0.2 | Port all terrain JSON | `games/age-of-dwarves/data/terrain/` | **Extend with FEATURE_GAP 3.1**: add `jungle`, `boreal_forest`, `plains` terrain types; add `infiltration` field to all terrain types |
| 0.3 | Port units JSON (all files) | `games/age-of-dwarves/data/units/` | Verbatim |
| 0.4 | Port spells JSON (all 5 school files) | `games/age-of-dwarves/data/spells/` | Verbatim |
| 0.5 | Port techs JSON (all files) | `games/age-of-dwarves/data/techs/` | Verbatim |
| 0.6 | Port buildings, races, resources, promotions, keywords | `games/age-of-dwarves/data/` | Verbatim |
| 0.7 | Port remaining data files: disciplines, eras, governments, victories, wilds, villages, setup, map_types, ai_personalities, difficulty, climate_spec | `games/age-of-dwarves/data/` | Verbatim |
| 0.8 | Port `games/age-of-dwarves/game.json` | `games/age-of-dwarves/game.json` | Update version if needed |
| 0.9 | Port `themes/fantasy/vocabulary.json` + `theme.json` | `themes/fantasy/` | Verbatim |
**Done when**: All JSON files present. `DataLoader` (once wired in Block 1) loads them without errors.
@ -60,7 +60,7 @@ Block 5 (proof) ← all
| 1.5 | Port `engine/src/autoloads/env_config.gd` | `engine/src/autoloads/env_config.gd` | Verbatim |
| 1.6 | Port `engine/src/autoloads/event_bus.gd` | `engine/src/autoloads/event_bus.gd` | Verbatim |
| 1.7 | Port `engine/src/autoloads/game_logger.gd` | `engine/src/autoloads/game_logger.gd` | Verbatim |
| 1.8 | Port `engine/src/autoloads/data_loader.gd` | `engine/src/autoloads/data_loader.gd` | Verify path to `games/age-of-four/` is correct |
| 1.8 | Port `engine/src/autoloads/data_loader.gd` | `engine/src/autoloads/data_loader.gd` | Verify path to `games/age-of-dwarves/` is correct |
| 1.9 | Port `engine/src/autoloads/game_state.gd` | `engine/src/autoloads/game_state.gd` | Verbatim |
| 1.10 | Port `engine/src/autoloads/turn_manager.gd` | `engine/src/autoloads/turn_manager.gd` | Verbatim |
| 1.11 | Port `engine/src/autoloads/theme_vocabulary.gd` | `engine/src/autoloads/theme_vocabulary.gd` | Verbatim |
@ -82,8 +82,8 @@ Block 5 (proof) ← all
|---|------|-------------------|-------|
| 2.1 | Port `engine/scenes/main/` — entry point scene + main.gd | `engine/scenes/main/` | Verbatim |
| 2.2 | Port `engine/scenes/menus/main_menu.tscn` + controller | `engine/scenes/menus/main_menu.tscn` | Verbatim |
| 2.3 | Port `games/age-of-four/assets/icons/` — placeholder icon PNGs | `games/age-of-four/assets/icons/` | Prevents missing texture errors on launch |
| 2.4 | Port placeholder terrain/unit sprites from `games/age-of-four/assets/` | `games/age-of-four/assets/` | Only what main menu references; bulk sprites come later |
| 2.3 | Port `games/age-of-dwarves/assets/icons/` — placeholder icon PNGs | `games/age-of-dwarves/assets/icons/` | Prevents missing texture errors on launch |
| 2.4 | Port placeholder terrain/unit sprites from `games/age-of-dwarves/assets/` | `games/age-of-dwarves/assets/` | Only what main menu references; bulk sprites come later |
**Done when**: `godot` (GUI launch) shows main menu. No missing resource errors in output log.
@ -95,14 +95,14 @@ Block 5 (proof) ← all
| # | Task | Source in .messy/ | Notes |
|---|------|-------------------|-------|
| 3.1 | Port `pnpm-workspace.yaml` | `pnpm-workspace.yaml` | Verify packages: `packages/engine-ts`, `guide/engine`, `guide/age-of-four` |
| 3.1 | Port `pnpm-workspace.yaml` | `pnpm-workspace.yaml` | Verify packages: `packages/engine-ts`, `guide/engine`, `guide/age-of-dwarves` |
| 3.2 | Port `packages/engine-ts/` | `packages/engine-ts/` | package.json (`@magic-civ/engine-ts`), src/index.ts. Keep generated file as placeholder stub — Block 4 will regenerate it |
| 3.3 | Port `guide/engine/` | `guide/engine/` | Full package: all components, types, utils, index.ts, package.json, tsconfig, vite.config.ts |
| 3.4 | Port `guide/age-of-four/` shell | `guide/age-of-four/` | App.tsx, all pages, vite.config.ts, package.json, tsconfig, index.html, src/data/ |
| 3.4 | Port `guide/age-of-dwarves/` shell | `guide/age-of-dwarves/` | App.tsx, all pages, vite.config.ts, package.json, tsconfig, index.html, src/data/ |
| 3.5 | Run `pnpm install` at workspace root | — | Verify all workspace deps resolve; fix any version conflicts |
| 3.6 | Verify `pnpm build` in `guide/age-of-four/` | — | Fix any TypeScript errors from path changes |
| 3.6 | Verify `pnpm build` in `guide/age-of-dwarves/` | — | Fix any TypeScript errors from path changes |
**Done when**: `pnpm dev` in `guide/age-of-four/` serves without errors. App renders in browser.
**Done when**: `pnpm dev` in `guide/age-of-dwarves/` serves without errors. App renders in browser.
---