syntax = "proto2"; package tm; import "fieldhw.proto"; enum MatchRound { NONE = 0; PRACTICE = 1; QUAL = 2; QF = 3; SF = 4; F = 5; R16 = 6; R32 = 7; R64 = 8; R128 = 9; TOP_N = 15; ROUND_ROBIN = 16; PRE_ELIM = 20; ELIM = 21; } enum MatchState { UNPLAYED = 0; QUEUED = 1; ON_DECK = 2; ACTIVE = 3; SCORED = 4; SUBMITTED = 5; } message MatchTuple { optional int32 division = 1; optional tm.MatchRound round = 2; optional int32 instance = 3; optional int32 match = 4; optional int32 session = 5 [default = 0]; } message AllianceTeamInfo { enum RoleEnum { NORMAL = 1; SURROGATE = 2; CAPTAIN = 3; PICK = 4; } optional string number = 1; optional tm.AllianceTeamInfo.RoleEnum role = 2 [default = NORMAL]; optional string name = 3; optional string location = 4; optional int32 round = 5 [default = 0]; optional int32 id = 6; } message AllianceInfo { repeated tm.AllianceTeamInfo teams = 1; optional string name = 2; } message MatchInfo { optional tm.MatchTuple matchTuple = 1; repeated tm.AllianceInfo alliances = 2; optional uint32 timeScheduled = 3; optional tm.Field assignedField = 4; optional tm.MatchState state = 5; optional uint32 timeStarted = 6; optional uint32 timeResumed = 7; optional uint32 elimOrder = 8; } message MatchSchedule { optional int32 division = 1; optional tm.MatchRound round = 2; repeated tm.MatchInfo matches = 3; } message MatchList { optional int32 division = 1; repeated tm.MatchTuple matches = 2; } message ScoreObject { required string name = 1; required int32 val = 2; } message TeamScore { optional int32 id = 1; optional bool dq = 2; optional bool noShow = 3; optional bool sitting = 4; optional string teamNum = 5; repeated tm.ScoreObject scoreTypes = 6; } message AllianceScore { optional int32 id = 1; repeated tm.TeamScore teams = 3; optional int32 place = 4; repeated tm.ScoreObject scoreTypes = 5; optional string name = 6; } message MatchScore { optional tm.MatchTuple matchTuple = 1; repeated tm.AllianceScore alliances = 2; optional tm.MatchState state = 3 [default = UNPLAYED]; repeated tm.ScoreObject scoreTypes = 4; optional string gameUuid = 5; optional int32 timeSaved = 6; } message MatchScoreList { repeated tm.MatchScore scores = 1; } message RescoreStatus { enum RescoreStatusEnum { ALLOWED = 1; DISALLOWED = 2; } optional tm.RescoreStatus.RescoreStatusEnum status = 1; } message OnFieldMatch { optional tm.MatchTuple matchTuple = 1; optional tm.Field field = 2; optional tm.AssignedObjectType.AssignedObjectEnum assignedType = 3 [default = MATCH]; optional uint32 duration = 4; optional uint32 scId = 5; } message SavedMatch { optional tm.MatchTuple matchTuple = 1; optional tm.Field field = 2; } message AssignedMatch { optional tm.MatchTuple matchTuple = 1; optional tm.Field field = 2; } message AssignedMatchList { repeated tm.AssignedMatch match = 1; }