ac7fe20054
Compact render is 15,691 bytes (~3.9k tokens) = 24.4% of the raw 64,204-byte to_dict() snapshot on the representative 7-combatant encounter, hitting the ~2-4k token target; grids are sparse and determinism is pinned in tests. candidates() derives plausible actions from the pairs with no second legality engine (swift/free/full_round excluded).