0ca905eb71
Precompute board adjacency and square sets, look up opponents once per move, and cache walks that exclude only the start square. Every game is unchanged for the same seed, checked with agents/scripts/fingerprint_games.py. Plan: skip catch-up 6.9 (D44), stop running the random lineup (D45). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>