syntax = "proto3"; import "core.proto"; import "game.proto"; package ru.m.tankz.proto.pack; message ErrorResponse { int32 code = 1; string message = 2; } // Login message LoginRequest { string uuid = 1; string name = 2; } message LoginResponse { ru.m.tankz.proto.core.UserProto user = 1; } // Logout message LogoutRequest {} message LogoutResponse {} // List Game message ListGameRequest {} message ListGameResponse { repeated ru.m.tankz.proto.core.GameProto games = 1; } // Create Game message CreateGameRequest { string type = 1; int32 level = 2; } message CreateGameResponse { ru.m.tankz.proto.core.GameProto game = 1; } // Join Game message JoinGameRequest { int32 game_id = 1; } message JoinGameResponse { ru.m.tankz.proto.core.GameProto game = 1; ru.m.tankz.proto.core.UserProto user = 2; } // Leave Game message LeaveGameRequest {} message LeaveGameResponse { ru.m.tankz.proto.core.GameProto game = 1; ru.m.tankz.proto.core.UserProto user = 2; } // Start Game message StartGameRequest {} message StartGameResponse { ru.m.tankz.proto.core.GameProto game = 1; } // Request message Request { oneof content { LoginRequest login = 1; LogoutRequest logout = 2; ListGameRequest listGame = 3; CreateGameRequest createGame = 4; JoinGameRequest joinGame = 5; LeaveGameRequest leaveGame = 6; StartGameRequest startGame = 7; } } // Response message Response { oneof content { LoginResponse login = 1; LogoutResponse logout = 2; ListGameResponse listGame = 3; CreateGameResponse createGame = 4; JoinGameResponse joinGame = 5; LeaveGameResponse leaveGame = 6; StartGameResponse startGame = 7; ErrorResponse error = 999; } }