async fn pre_lobby(
ws_recv: &mut SplitStream<WebSocketStream<TcpStream>>,
ws_send: &Mutex<SplitSink<WebSocketStream<TcpStream>, Message>>,
server_state: &SyncedServerState,
con: &Connection,
) -> Result<(SharedLobbyState, String, Option<PlayerId>), ConnectionError>