Backend environment for match hosting for lance.blue

feat(scenarios): a tool that loads a scenario and says what is in it master

ScenarioReport loads .mms files the way MatchHost does and prints JSON: the factions, their units, and what each side is worth. Battle value is not in the file - it is computed from the unit and its pilot's skills - so loading the scenario and asking MegaMek is the only honest way to know it. Generating a fight needs both halves: that it loads at all, and what it is worth. tests/scenario-load.sh runs it over every scenario in the image and checks the set that fails matches tests/scenarios-known-bad.txt. Eleven of fifty-one do not load today: seven name boards no release ships, two are Strategic BattleForce, and two are broken by our own portrait prune, whose comment says that cannot happen. The list is exact both ways, so a MegaMek bump that breaks a twelfth fails the build instead of a player's match. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Change-Id: I180c74e49c01d78b92a9855a390bf2027b620023


Author permadeath.com Co-author Claude Opus 5 (1M context) Committer Tangled Date Commit 762f6f98 Parent d8d5027c Change ID I180c74e