# 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`.
