pub async fn start( port: Option<u16>, external_events: impl Stream<Item = Event> + Unpin ) -> Result<(u16, impl Future<Output = Result<()>>), ErrReport>