Get desktop application:
View/edit binary Protocol Buffers messages
Used in: ,
harder bots here? inference? ml, etc.
custom bots can be used to run custom algorithms. They should be used with the BotSpec below.
This should have probably been number 0.
Used in: , ,
EndgameMove is a single move within an endgame variation
Used in:
EndgameVariation holds a move sequence from endgame analysis
Used in:
Used in:
Used in:
Evaluate for this user
Later: evaluation type (static/sim/etc)
GameAnalysisResult contains analysis results for a completed game
Used in: ,
This should be merged into Move.
Used in: , , , ,
An event will not have all of these; it depends on the type of the event.
words_formed is a list of all words made by this play, in user-visible pretty form. The first word is the "main" word, anything after it are cross-words.
The player who played this move is encoded in player_index. This should be the index in GameHistory.players.
num_tiles_from_rack lets us know how many tiles from the rack were either played or exchanged. It is only populated for those two fields.
Used in:
Used in:
Only for international rules (or after 6 zeroes)
Lose a turn for challenging a word incorrectly (only for double challenge)
Issue a challenge
GameHistory encodes a whole history of a game, and it should also encode the initial board and tile configuration, etc. It can be considered to be an instantiation of a GCG file.
Used in: , , , ,
players are in order of who went first.
last_known_racks should only be set in an incomplete / in-progress game. if set, player racks should be set to these values.
Add letter distribution (basically game name), board config, and more in the future.
Final scores of the game; the order is in the order of the listed players!
The variant is the game variant used. If blank, should default to "classic".
The index of the player who won. It's not always the person with the highest score, because there can be timeouts, etc. If it's a tie, it will be a -1.
The board layout is just the name for the layout of the board. It should have a sensible default, if blank.
The letter distribution is the name of the distribution of tiles used for this game. If blank, should default to "english".
If provided, the starting CGP is a crossword-game position string.
Used in:
Used in:
PEGOutcomeInfo holds the outcome for a specific tile draw in PEG analysis
Used in:
Used in:
PEGPlayInfo holds per-play statistics from the pre-endgame solver
Used in:
Used in: ,
Used in:
user_id is an internal, unchangeable user ID, whereas the other two user identifiers might possibly be mutable.
PlayerSummary contains aggregate statistics for one player
Used in:
Average losses
Mistake breakdown
Overall rating
Bingo tracking
PlyStats holds per-ply score and bingo statistics for a simmed play
Used in:
Used in:
Used in:
Used in: ,
SimmedPlayInfo holds per-play statistics from Monte Carlo simulation
Used in:
Used in:
TurnAnalysis contains analysis for a single turn
Used in:
Turn context
Moves
e.g., "8D QUIXOTIC" or "(exch AEI)"
Loss metrics
For sim/PEG phases (0-1)
For endgame phase
Mistake categorization
Phony tracking
Bingo tracking
Enriched data (v2+)
Known opponent rack (from challenged phony)
e.g., "JAM" - tiles revealed by challenged phony