feat(editor): WCST JSON round-trip closure

Adds --export-wcst-json / --import-wcst-json. Eight uint stat
fields per entry serialize as JSON ints; className field on
export is informational (classId is the authoritative key).
All 3 presets (warrior/mage/starting) byte-identical binary
roundtrip OK including the 9-entry starting-stats preset that
spans 9 different vanilla classes.

Live-tested monotonicity validator: hand-mutated Mage L20
baseStrength to 21 (below L10=22), validator correctly emitted:
"monotonicity: Mage baseStrength regresses from 22 (L10) to 21
(L20) — likely typo". The level-sorting + adjacent-pair walk
correctly identified the violation across the sparse 6-level
sample.

CLI flag count 1371 -> 1373.
This commit is contained in:
Kelsi 2026-05-10 04:10:57 -07:00
parent b66e41df87
commit fab32a1cff
3 changed files with 127 additions and 0 deletions

View file

@ -400,6 +400,7 @@ const char* const kArgRequired[] = {
"--export-wprt-json", "--import-wprt-json",
"--gen-cst-warrior", "--gen-cst-mage", "--gen-cst-starting",
"--info-wcst", "--validate-wcst",
"--export-wcst-json", "--import-wcst-json",
"--gen-weather-temperate", "--gen-weather-arctic",
"--gen-weather-desert", "--gen-weather-stormy",
"--gen-zone-atmosphere",