- 100 diverse opponents (randomized params within each type) - Risk gate: empty book guard in _post_only_would_cross - CMA-ES: only every 5 cycles, 3 evals, robust error handling - Main loop: try/except prevents silent crashes - Profiling: 11.7 steps/sec with 100 opponents