syntax = "proto3"; import "google/protobuf/empty.proto"; import "common.proto"; import "connection.proto"; import "lobby.proto"; import "game.proto"; package protocol; message ClientServerPacket { oneof data { // CONNECTION google.protobuf.Empty queryName = 1; common.Name connect = 2; google.protobuf.Empty disconnect = 3; connection.LobbyCode joinLobby = 4; connection.LobbyConfig createLobby = 5; google.protobuf.Empty queryGames = 6; google.protobuf.Empty queryPublicLobbies = 7; // LOBBY google.protobuf.Empty queryUsers = 8; lobby.SingleVote vote = 9; google.protobuf.Empty ready = 10; google.protobuf.Empty leave = 11; // GAME game.CardKind queryCardImage = 12; game.CardId callOnClick = 13; } } message ServerClientPacket { oneof data { // CONNECTION common.Name returnName = 1; connection.UserID returnConnect = 2; google.protobuf.Empty disconnect = 3; connection.LobbyCode returnCreateLobby = 4; Games returnGames = 5; LobbyCodes returnPublicLobbies = 6; // LOBBY Names returnUsers = 7; lobby.LobbyStatus lobbyStatus = 8; // GAME game.Image returnCardImage = 9; game.GameStatus gameStatus = 10; } } message Games { repeated connection.Game games = 1; } message LobbyCodes { repeated connection.LobbyCode lobbyCodes = 1; } message Names { repeated common.Name names = 1; }