The Vec<Vec<_>> → SmallVec<[SmallVec<[_;8]>;8]> change in Task 10
regressed Batch::iteration from 23.29 µs to 29.73 µs (+28%). The
SmallVec was motivated by reducing parallel-path allocations but
it hurt the sequential path substantially.
Reverting game.rs + time_slice.rs + history.rs storage back to the T2
Vec<Vec<_>> shape. The parallel rayon path (unsafe direct-write +
thread_local ScratchArena + RAYON_THRESHOLD=64 fallback) stays — it
is independent of Game's internal storage.
Benchmarks after revert:
Batch::iteration (seq, no rayon): 23.23 µs (restored ≈T2)
Batch::iteration (rayon): 24.57 µs
history_converge/500x100@10: 4.03 ms seq, 4.24 ms rayon — 1.0×
history_converge/2000x200@20: 20.18 ms seq, 19.82 ms rayon — 1.0×
history_converge/1v1-5000x50000@5000: 11.88 ms seq, 9.10 ms rayon — 1.3×
Part of T3.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>