Replaces three independently hand-rolled battlefighter_t JSON readers/
writers (party.jsonc roster loading, BATTLE_START enemy definitions, and
the v1 save-file party member format) with one generic pair in
battlefighter.c: battleFighterParse(fighter, obj) and its inverse
battleFighterSerialize(fighter, doc). Covers team/controller/status
(optional, default ally/player/normal), the 7 base stats (required),
current health/mp (optional, default to max), and an optional abilities
name array.
- party.c: partyInit now parses each roster member via battleFighterParse
directly, dropping the old partyParseStats/partyParseStatField.
- cutscenebattlestart.c/.h: cutscenebattlestartenemy_t now embeds a full
battlefighter_t, parsed once at Load time; Start just copies it into the
enemy pool instead of re-initializing. battletest.jsonc's enemies are
now flat (dropped the "stats" wrapper) to match.
- saveslotver1.c/.h: rewritten in place to use the shared parser/
serializer, changing the v1 on-disk field names/shape (no migration -
acceptable pre-release, documented in saveslotver1.h).
Co-Authored-By: Claude Sonnet 5 <[email protected]>