Skip to content

Instantly share code, notes, and snippets.

@laser
Created June 11, 2014 01:23
Show Gist options
  • Save laser/9b1c14f110d18eb6e50d to your computer and use it in GitHub Desktop.
Save laser/9b1c14f110d18eb6e50d to your computer and use it in GitHub Desktop.
Matches.idl
struct MatchSearch {
combineId int [optional]
}
struct Match {
id int
name string
startsAt int
teams []Team
heats []Heat
}
struct Team {
id int
name string
athletes []Athlete
}
struct Athlete {
id int
number string
name string
gender Gender
}
enum Gender {
Male
Female
}
struct Heat {
id string
variation string
duration int
raceNumber int
rules Rules
stations []Station
}
struct Rules {
stationAdvancement StationAdvancement [optional]
concurrentStations int [optional]
keepWithinReps int [optional]
}
enum StationAdvancement {
sequential
ladder
}
struct Station {
id int
name string
element string
requiredCount int [optional]
amount string [optional]
}
// Scoring
enum HeatState {
active
paused
finished
finalized
}
struct MatchSnapshot {
matchId int
heatSnapshots []HeatScoringSnapshot
startsAt int
}
struct HeatScoringSnapshot {
heatId string
matchId int
raceNumber int
snapshotTakenAt int
state HeatState
teamScorings []TeamScoring
timeRemaining int
}
struct TeamScoring {
teamId int
area int [optional] // only for races 2 and 9
currentAthlete ActiveAthlete [optional] // only for race 7
currentStations []ActiveStation [optional] // non-race 7 only
currentTotals CurrentTotals [optional] // only for race 7
points int [optional] // only present when the race is in a "finished" or "finalized" state
name string
totalRepsRemaining int [optional] // non-race 7 only
finishedIn int [optional] // non-race 7 only
}
struct ActiveStation {
completed int
name string
remaining int
required int
}
struct CurrentTotals {
female int
male int
}
struct ActiveAthlete {
gender Gender
total int
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment