feat(state): CharacterSheet — store the inputs, derive the rest

Stores only what was rolled or chosen, plus current hp/mp (the only two numbers
that genuinely mutate). Everything else is a function, so no derived number can
drift from its inputs and M5's level curve is a function change, not a migration.

LCK has no row and no accessor here — §7 holds by construction.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QYa9u7Kdxv5gX4AnwWexy8
This commit is contained in:
2026-07-12 20:21:45 -05:00
parent a7e153884f
commit bb5d176262
4 changed files with 187 additions and 0 deletions

View File

@@ -0,0 +1 @@
uid://mofimtmsxuui