Timing wheel data structure for O(1) event scheduling, wheel size 32768 slots (5-bit shift), bitmap tracking for occupied slots, arena-based allocation with free list, sequence numbers for FIFO ordering within same timestamp, SimEvent variants (GcdEnd, CastComplete, SpellDamage, AuraExpire, AuraTick, CooldownReady, ChargeReady, AutoAttack, PetAttack, ResourceTick, ProcIcdEnd, SimEnd), events_processed and events_scheduled metrics, SimTime(u32) millisecond resolution, why timing wheel over binary heap (cache locality, O(1) insert/pop vs O(log n)).
Next steps