Operation(Parameter) -> Callback Server Disconnect() // client closes connection Error(Error) OK() SimpleAuth(SimpleAuth) -> UserInfoSync // client wants to authenticate anonymously RobotUpdate(Robot) -> RobotUpdate // client wants to change robot RoomInfoSync(RoomInfo) <- TODO // client wants to change room info MakeRoom() -> RoomInfoSync // client creates a room JoinRoom(???) -> RoomInfoSync // client joins specific room JoinRandomRoom() -> RoomInfoSync // client joins random room LeaveRoom() -> LeaveRoom // client leaves current room Client Disconnect() // server closes connection Error(Error) OK() RobotUpdate(Robot) // this robot has changed RoomInfoSync(RoomInfo) // your current rooms info has changed UserInfoSync(UserInfo) // your user info has been changed PlayfielSync(PlayfieldSync) // playfield has been created RoomInfoSync(RoomInfo) // room info has changed YourTurn() -> RobotUpdate // it's your turn JoinRoom(PublicUserInfo) // player joins your current room LeaveRoom(UserReference) // player leaves your current room