Packages
game_server_sdk
1.0.1049
1.0.1082
1.0.1079
1.0.1078
1.0.1077
1.0.1076
1.0.1075
1.0.1074
1.0.1073
1.0.1070
1.0.1068
1.0.1067
1.0.1063
1.0.1059
1.0.1058
1.0.1057
1.0.1056
1.0.1055
1.0.1050
1.0.1049
1.0.1048
1.0.1047
1.0.1046
1.0.1044
1.0.1043
1.0.1042
1.0.1041
1.0.1040
1.0.1039
1.0.1038
1.0.1034
1.0.1033
1.0.1029
1.0.1028
1.0.1026
1.0.1025
1.0.1024
1.0.1023
1.0.1022
1.0.1021
1.0.1020
1.0.1019
1.0.1018
1.0.1017
1.0.1016
1.0.1015
1.0.1014
1.0.1013
1.0.1012
1.0.1011
1.0.1009
1.0.1008
1.0.1007
1.0.1006
1.0.1005
1.0.1004
1.0.1003
1.0.1001
1.0.999
1.0.998
1.0.997
1.0.996
1.0.995
1.0.994
1.0.993
1.0.992
1.0.991
1.0.990
1.0.989
1.0.988
1.0.987
1.0.986
1.0.985
1.0.984
1.0.983
1.0.982
1.0.981
1.0.980
1.0.979
1.0.978
1.0.977
1.0.976
1.0.975
1.0.974
1.0.973
1.0.972
1.0.971
1.0.970
1.0.969
1.0.968
1.0.967
1.0.966
1.0.965
1.0.964
1.0.963
1.0.962
1.0.961
1.0.959
1.0.958
1.0.956
1.0.951
1.0.950
1.0.943
1.0.942
1.0.941
1.0.940
1.0.938
1.0.936
1.0.935
1.0.931
1.0.929
1.0.928
1.0.927
1.0.926
1.0.925
1.0.924
1.0.923
1.0.921
1.0.920
1.0.919
1.0.918
1.0.917
1.0.916
1.0.911
1.0.910
1.0.902
1.0.899
1.0.898
1.0.897
1.0.896
1.0.894
1.0.893
1.0.891
1.0.890
1.0.889
1.0.888
1.0.887
1.0.886
1.0.885
1.0.884
1.0.883
1.0.882
1.0.881
1.0.880
1.0.879
1.0.878
1.0.877
1.0.26
1.0.25
1.0.22
1.0.21
1.0.20
1.0.19
1.0.15
1.0.14
1.0.13
1.0.12
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.1.0
SDK for GameServer hooks development. Provides type specs, documentation, and IDE autocomplete for GameServer modules without requiring the full server.
Current section
Files
Jump to
Current section
Files
lib/game_server/tournaments/match.ex
defmodule GameServer.Tournaments.Match do
@moduledoc """
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 tournament
- `bracket_index` - Which bracket this match belongs to
- `round` - 1-based round number
- `slot` - Position within the round
- `a_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 with `resolved_at` set means a double forfeit
- `ready_at` - When the match became playable
- `expired_at` - When the deadline passed with the match still open
- `resolved_at` - When the verdict was recorded
- `deadline` - End of the round window
- `metadata` - Game scratch space, e.g. runs or a lobby id (map)
- `inserted_at` - Creation timestamp
- `updated_at` - Last update timestamp
"""
@type t :: %__MODULE__{
id: String.t(),
tournament_id: String.t(),
tournament: GameServer.Tournaments.Tournament.t() | nil,
bracket_index: integer(),
round: integer(),
slot: integer(),
a_entry_id: String.t() | nil,
b_entry_id: String.t() | nil,
a_entry: GameServer.Tournaments.Entry.t() | nil,
b_entry: GameServer.Tournaments.Entry.t() | nil,
winner_entry_id: String.t() | nil,
ready_at: DateTime.t() | nil,
expired_at: DateTime.t() | nil,
resolved_at: DateTime.t() | nil,
deadline: DateTime.t(),
metadata: map(),
inserted_at: DateTime.t(),
updated_at: DateTime.t()
}
defstruct [
:id,
:tournament_id,
:tournament,
:bracket_index,
:round,
:slot,
:a_entry_id,
:b_entry_id,
:a_entry,
:b_entry,
:winner_entry_id,
:ready_at,
:expired_at,
:resolved_at,
:deadline,
:metadata,
:inserted_at,
:updated_at
]
end