Simulator
Core simulation engine that orchestrates discrete event simulation.
The simulator maintains a priority queue of events and executes them in chronological order. It is responsible for advancing simulation time and invoking associated event handlers.