Replaces the phase-3 zero stub. Real progression math now lands in the response body (rank / after_battle_point / after_master_point / battle_point / master_point). Format is authored by URL (not derived from BattleContext) so /finish still works when hit without a prior /do_matching — mirrors the client's URL-per-format Wizard/RankBattleFinishTask dispatch (decompile lines 12-35). 3 existing tests updated with real progression assertions; 3 new tests cover D-tier floor loss, format separation, and AI-variant persistence. Full solution suite: 1583/1583 pass. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
16 KiB
16 KiB