Keith Solomon 73254cbf80 Merge feature/battle-interface into develop
Implements Plan 4: battle interface, bundled scenarios, smoke test, release hardening.

- Domain: TurnToken HMAC + ScenarioSerializer objective round-trip
- Web layer: PostStartMatch mints matchId+turnToken; four per-verb action handlers (move/attack/ability/end-turn) on MatchActionSupport
- Bundled scenarios: skirmish, hold-the-line, last-stand + manifest
- Match view: server-rendered shell + match.js renderer with hot-seat action modes
- E2E smoke test gated by BATTLEFORGE_E2E=1 + ci-e2e.yml workflow (PR-to-develop + nightly)

Final review: 1 Critical (permanently disabled action buttons) addressed in d53a84c; re-review clean.

234 PHPUnit tests pass (+47 new since Plan 1 baseline); PHPStan clean; PHPCS delta 0; ESLint clean; Prettier clean.
2026-07-26 10:28:36 -05:00
S
Description
No description provided
535 KiB