feat(editor): WBRD JSON round-trip closure

Adds --export-wbrd-json / --import-wbrd-json. battlegroundName
emitted as informational field; battlegroundId int is
authoritative. All 3 presets (av/wsg/ab) byte-identical binary
roundtrip OK including the AB preset's weekly bonus quest token
binding.

Live-tested incentive-inversion validator: hand-mutated WSG
bracket 6 (rewardId 15) to swap winHonor and lossHonor — loss
becomes 750, win becomes 375. Validator correctly errored:
"lossHonor=750 > winHonor=375 — losing rewards more than winning
(no win incentive)". Catches the class of reward-config bugs
where misordered fields would silently flip the optimal player
strategy from "play to win" to "AFK and lose for max XP/hour".

CLI flag count 1461 -> 1463.
This commit is contained in:
Kelsi 2026-05-10 05:27:03 -07:00
parent a10497a026
commit a2f0055a4d
3 changed files with 128 additions and 0 deletions

View file

@ -430,6 +430,7 @@ const char* const kArgRequired[] = {
"--export-wauh-json", "--import-wauh-json",
"--gen-brd-av", "--gen-brd-wsg", "--gen-brd-ab",
"--info-wbrd", "--validate-wbrd",
"--export-wbrd-json", "--import-wbrd-json",
"--gen-weather-temperate", "--gen-weather-arctic",
"--gen-weather-desert", "--gen-weather-stormy",
"--gen-zone-atmosphere",