public override void Execute(State state, FastPriorityQueue <Event> eventQueue)
        {
            var station = state.stations[stationIndex];

            System.Diagnostics.Debug.WriteLine($"ExpectedTramDeparture: tram {tram.id}, station: {station.name}, dir: {station.direction}, time: {state.time}");

            bool forceDepart = state.time >= initialScheduledDeparture + Config.c.maximumWaitForExtraPassengers;

            if (!forceDepart && !tram.IsFull() && station.HasPassengers())
            {
                (int pIn, List <int> e) = station.BoardPassengers(tram);
                entrances = e;
                eventQueue.Enqueue(new ExpectedTramDeparture(tram, stationIndex, initialScheduledDeparture),
                                   state.time + Sampling.passengerExchangeTime(0, pIn));
            }
            else
            {
                eventQueue.Enqueue(new TramDeparture(tram, stationIndex), state.time);
            }
        }