# Character Creation Snapshot — Manifest **Snapshot taken:** 2026-04-25 (Phase 5 M3 complete) ## Files in this snapshot Each row maps `canonical source path` → `snapshot path within this folder`. Snapshot paths mirror the canonical paths exactly so it's obvious where each file came from. | Canonical source | Why included | |----------------------------------------------------------------------|---------------------------------------| | `Theriapolis.Game/Screens/CharacterCreationScreen.cs` | The screen itself — primary subject | | `Theriapolis.Game/Screens/IScreen.cs` | Lifecycle interface (Init/Update/Draw)| | `Theriapolis.Game/Screens/TitleScreen.cs` | Screen pushed BEFORE character creation| | `Theriapolis.Game/Screens/WorldGenProgressScreen.cs` | Screen pushed AFTER character creation| | `Theriapolis.Core/Data/CladeDef.cs` | Clade record schema | | `Theriapolis.Core/Data/SpeciesDef.cs` | Species record schema | | `Theriapolis.Core/Data/ClassDef.cs` | Class record schema (incl. starting_kit) | | `Theriapolis.Core/Data/BackgroundDef.cs` | Background record schema | | `Theriapolis.Core/Data/TraitDef.cs` | Shared trait/detriment record | | `Theriapolis.Core/Data/ContentResolver.cs` | One-shot id→def lookup table loader | | `Theriapolis.Core/Rules/Character/Character.cs` | Runtime aggregate the screen produces | | `Theriapolis.Core/Rules/Character/CharacterBuilder.cs` | Fluent builder + validation + stat rolls | | `Theriapolis.Core/Rules/Stats/AbilityScores.cs` | 6-ability struct + Mod() math | | `Theriapolis.Core/Rules/Stats/Size.cs` | SizeCategory enum + helpers | | `Theriapolis.Core/Rules/Stats/SkillId.cs` | 18-skill enum + ability mapping | | `Content/Data/clades.json` | The 7 clades players choose from | | `Content/Data/species.json` | The 19 species filtered by clade | | `Content/Data/classes.json` | The 8 classes (with feature defs + level table + starting kit) | | `Content/Data/backgrounds.json` | The 12 backgrounds | ## Refresh command To bring this snapshot back in sync with the canonical sources, run from the repo root: ```bash # (from repo root C:\Users\chris\OneDrive\Documents\AI\Claude\TTRPG\TheriapolisV3) mkdir -p _design_handoff/character_creation/Theriapolis.Game/Screens \ _design_handoff/character_creation/Theriapolis.Core/Data \ _design_handoff/character_creation/Theriapolis.Core/Rules/Character \ _design_handoff/character_creation/Theriapolis.Core/Rules/Stats \ _design_handoff/character_creation/Content/Data cp Theriapolis.Game/Screens/CharacterCreationScreen.cs _design_handoff/character_creation/Theriapolis.Game/Screens/ cp Theriapolis.Game/Screens/IScreen.cs _design_handoff/character_creation/Theriapolis.Game/Screens/ cp Theriapolis.Game/Screens/TitleScreen.cs _design_handoff/character_creation/Theriapolis.Game/Screens/ cp Theriapolis.Game/Screens/WorldGenProgressScreen.cs _design_handoff/character_creation/Theriapolis.Game/Screens/ cp Theriapolis.Core/Data/CladeDef.cs _design_handoff/character_creation/Theriapolis.Core/Data/ cp Theriapolis.Core/Data/SpeciesDef.cs _design_handoff/character_creation/Theriapolis.Core/Data/ cp Theriapolis.Core/Data/ClassDef.cs _design_handoff/character_creation/Theriapolis.Core/Data/ cp Theriapolis.Core/Data/BackgroundDef.cs _design_handoff/character_creation/Theriapolis.Core/Data/ cp Theriapolis.Core/Data/TraitDef.cs _design_handoff/character_creation/Theriapolis.Core/Data/ cp Theriapolis.Core/Data/ContentResolver.cs _design_handoff/character_creation/Theriapolis.Core/Data/ cp Theriapolis.Core/Rules/Character/Character.cs _design_handoff/character_creation/Theriapolis.Core/Rules/Character/ cp Theriapolis.Core/Rules/Character/CharacterBuilder.cs _design_handoff/character_creation/Theriapolis.Core/Rules/Character/ cp Theriapolis.Core/Rules/Stats/AbilityScores.cs _design_handoff/character_creation/Theriapolis.Core/Rules/Stats/ cp Theriapolis.Core/Rules/Stats/Size.cs _design_handoff/character_creation/Theriapolis.Core/Rules/Stats/ cp Theriapolis.Core/Rules/Stats/SkillId.cs _design_handoff/character_creation/Theriapolis.Core/Rules/Stats/ cp Content/Data/clades.json _design_handoff/character_creation/Content/Data/ cp Content/Data/species.json _design_handoff/character_creation/Content/Data/ cp Content/Data/classes.json _design_handoff/character_creation/Content/Data/ cp Content/Data/backgrounds.json _design_handoff/character_creation/Content/Data/ ``` After refreshing, bump the `Snapshot taken:` date at the top of this file and at the top of `README.md`. ## Files NOT included (and why) - `Theriapolis.Core/Rules/Stats/{ProficiencyBonus,XpTable,SaveId,DamageType,Condition}.cs` — used by combat, not by character creation. Design doesn't need them. - `Theriapolis.Core/Items/*.cs` — inventory mechanics. The starting kit lands via `CharacterBuilder.ApplyStartingKit`; Design can see the result on the spawned character without touching the equip plumbing. - `Theriapolis.Core/Persistence/*.cs` — character serialization. Orthogonal to creation UX. - `Theriapolis.Core/Constants.cs` — game-wide tuning numbers. Includes `RNG_STAT_ROLL` (one constant the screen uses) but nothing UX-relevant. - The Phase 5 plan in full — only §4.2 is relevant to character creation; it's extracted into `DESIGN_INTENT.md`.