pub async fn run_engine_loop<S, H, U, E, Tr, C>(
shell: ExecutionShell,
tick_rx: Receiver<Tick>,
tick_tx: Sender<Tick>,
deps: EngineDeps<S, H, U, E, C>,
shutdown_rx: Receiver<()>,
transports: TransportTable<Tr>,
transport_rx: UnboundedReceiver<TransportRegistration<Tr>>,
)