Game record schema reference (v1.0.0)

Auto-generated from gamerecord.json. Narrative documentation is in Game records.

Top-level properties

Property Required Description
header yes Series of (essentially) name-value pairs that gives the game metadata.
moves yes The list of moves, including possible commentary. Each entry represents a game round (one turn for each player).

Header properties

Property Required Description
game no A description of exactly what game this report represents.
event no Only provide if part of a formal tournament or event. The 'round' header must also exist.
round no Only use when part of a larger formal event. The 'event' header must also exist.
site no Where the game took place.
date-start no Datetime the game started.
date-end no Datetime the game ended. Required because the recrank system is not intended to house incomplete records.
date-generated no The datetime this report was last generated/updated.
unrated no Set to true to explicitly flag a record as 'unrated'
pied no Set to true if the pie rule was invoked.
startingPosition no Some games have variable starting conditions (like Alien City). This string should describe that position.

Site properties (header.site)

Property Required Description
name no For physical games, it should be the location of the game. For online games, use a consistent name for that service so t
gameid no For online games, provide the unique game identifier for this game on the given site. This should be unique across the e

Player properties (header.players[])

Property Required Description
name yes User's name as of the time the game was archived.
userid no User's unique identifier on the site indicated. Optional, but if not provided, the game cannot be rated.
score no Where applicable, give the player's score.
is_ai no This field flags a player as being an AI.
result yes This is how the system determines who won. Each player should be given a number. Players who share the same number are s

Moves

moves is an array of rounds. Each round is an array of per-player entries (string, null, or move object with move text). Position in each round correlates to seating order in header.players.