syntax = "proto2";
message RoomCommand {
    enum RoomCommandType {
        LEAVE_ROOM = 1000;
        ROOM_SAY = 1001;
        CREATE_GAME = 1002;
        JOIN_GAME = 1003;
    }
    extensions 100 to max;
}

message Command_LeaveRoom {
    extend RoomCommand {
        optional Command_LeaveRoom ext = 1000;
    }
}

message Command_RoomSay {
    extend RoomCommand {
        optional Command_RoomSay ext = 1001;
    }
    optional string message = 1;
}

message Command_CreateGame {
    extend RoomCommand {
        optional Command_CreateGame ext = 1002;
    }
    optional string description = 1;
    optional string password = 2;
    optional uint32 max_players = 3;
    optional bool only_buddies = 4;
    optional bool only_registered = 5;
    optional bool spectators_allowed = 6;
    optional bool spectators_need_password = 7;
    optional bool spectators_can_talk = 8;
    optional bool spectators_see_everything = 9;
    repeated uint32 game_type_ids = 10;
    optional bool join_as_judge = 11;
    optional bool join_as_spectator = 12;
}

message Command_JoinGame {
    extend RoomCommand {
        optional Command_JoinGame ext = 1003;
    }
    optional sint32 game_id = 1 [default = -1];
    optional string password = 2;
    optional bool spectator = 3;
    optional bool override_restrictions = 4;
    optional bool join_as_judge = 5;
}
