Rewrite character sheet as structured data with bookkeeping tools
The old character.md body parsing made the DM do mental arithmetic on
every modifier, which is how my silver ended up at -20. This replaces it
with a structured character.yaml, a small computation engine for derived
values (skills, saves, passive perception, with breakdowns), and a set
of bookkeeping tools that prevent arithmetic errors without enforcing 5e
rules. The DM is still in charge of adjudication.
Splits per-player files into character.yaml (structured), character.md
(prose backstory and aliases), and notes.md (appending journal). Magic
items become world entities with wikilinks from the character. Generic
resource pools handle hit dice, charges, and class features through one
mechanism.
Adds 16 new character tools (damage, heal, add_effect, add_condition,
add_item, set_item_status, use_resource, rest, etc.), all with deferred
TUI notifications so the player sees the actual arguments. Damage and
heal route to either the initiative tracker or the character sheet
depending on whether a target is given, and the initiative versions sync
back to the character sheet for player combatants.
Also fixes two bugs the rewrite surfaced: _sync_player_hp was writing
to the old flat hp.current path, and a test was passing the same stale
path to update_character. Both have regression tests now.
This is pretty solid!!!!