package tournament_brackets // TournamentType defines the kind of tournament, e.g., single or double elimination. type TournamentType string const ( SingleElimination TournamentType = "single-elimination" DoubleElimination TournamentType = "double-elimination" // TODO ) // Participant represents a competitor in the tournament. type Participant struct { ID int Name string } // Match represents a single matchup between two participants. type Match struct { ID int RoundIndex int MatchIndex int // Index of the match within its round Participant1 *Participant Participant2 *Participant Winner *Participant NextMatch *Match } // Round represents a single round in the tournament, containing one or more matches. type Round struct { ID int Matches []*Match } // Tournament is the root object that contains all data for a tournament event. type Tournament struct { Name string Rounds []Round TournamentType TournamentType Options *Options } // Options defines configuration for tournament generation, like custom seeding rules. type Options struct { // SeedingRules is a function to define custom seeding logic. (Not yet implemented) SeedingRules func() error }