Ship
data class Ship(val routingTable: RoutingTableIfc, val outboundCarrier: DemandCarrierIfc) : DockTerminalAction(source)
Re-ship the demand to its next hop in a multi-hop pass-through (a cross-dock). The dock looks up the next hop in routingTable using the demand's SupplyChainModel.Demand.demandSender (the final destination), calls demand.ship() to transition Delivered → Shipped, and hands the demand to outboundCarrier.