Tournament match struct from GameServer.
This is a stub module for SDK type definitions. The actual struct is provided by GameServer at runtime.
A match is a pairing plus a verdict: two entries that must produce a winner
by deadline. How it is played is up to the game — the server only needs
GameServer.Tournaments.resolve_match/2 called before the deadline.
Payloads passed to tournament_match_ready/1 and tournament_match_expired/1
have tournament, a_entry and b_entry preloaded.
Fields
id- Match ID (UUIDv7 string)tournament_id/tournament- Owning tournamentbracket_index- Which bracket this match belongs toround- 1-based round numberslot- Position within the rounda_entry_id/a_entry- First side (nil until its feeder resolves)b_entry_id/b_entry- Second side (nil until its feeder resolves)winner_entry_id- Set on resolution; nil withresolved_atset means a double forfeitready_at- When the match became playableexpired_at- When the deadline passed with the match still openresolved_at- When the verdict was recordeddeadline- End of the round windowmetadata- Game scratch space, e.g. runs or a lobby id (map)inserted_at- Creation timestampupdated_at- Last update timestamp
Summary
Types
@type t() :: %GameServer.Tournaments.Match{ a_entry: GameServer.Tournaments.Entry.t() | nil, a_entry_id: String.t() | nil, b_entry: GameServer.Tournaments.Entry.t() | nil, b_entry_id: String.t() | nil, bracket_index: integer(), deadline: DateTime.t(), expired_at: DateTime.t() | nil, id: String.t(), inserted_at: DateTime.t(), metadata: map(), ready_at: DateTime.t() | nil, resolved_at: DateTime.t() | nil, round: integer(), slot: integer(), tournament: GameServer.Tournaments.Tournament.t() | nil, tournament_id: String.t(), updated_at: DateTime.t(), winner_entry_id: String.t() | nil }