syntax = "proto3"; import "google/protobuf/empty.proto"; import "common.proto"; package lobby; // Lobby functionality (client_id required for most of them) service Lobby { rpc users(google.protobuf.Empty) returns(stream common.Name); rpc vote(SingleVote) returns(google.protobuf.Empty); rpc ready(google.protobuf.Empty) returns(google.protobuf.Empty); rpc pollStatus(common.LastStatusTimestamp) returns(common.HasNewStatus); rpc getStatus(google.protobuf.Empty) returns(LobbyStatus); rpc leave(google.protobuf.Empty) returns(google.protobuf.Empty); } message Vote { string player = 1; uint32 game = 2; bool ready = 3; } message SingleVote { uint32 game = 2; } message LobbyStatus { repeated common.Name names = 1; repeated Vote votes = 2; bool isStarting = 3; }