One player's copy of a finished Daisy match. Each player saves their own; the record key is the match id (a TID made when the commitments are exchanged, just before the coin), so the two copies share it. A player against the bot saves alone.
tid
Timestamp-based ID
Properties
commitments
array
of
ref
#link
Required
Each player's commitment, in player order: the top of a SHA-256 hash chain made from a secret seed before the coin.
maxLength: 2 itemsminLength: 2 itemscreatedAt
string
datetime
Required
An RFC 3339 formatted timestamp.
ending
string
Required
No description available.
won, forfeitfirstPlayer
integer
Required
Who the coin (roll 0) chose to start.
minimum: 1maximum: 2forfeitReason
string
Optional
Only for a forfeit: the loser let the turn timer run out, was away too long, or didn't reveal their link for a roll.
turn-timeout, away, no-revealhouse
ref
com.atproto.repo.strongRef
Optional
The house tile that refereed the match, as pinned by both players' pages.
lastReveals
array
of
ref
#link
Required
The last link each player revealed on that chain, in player order. Hashing forward from it rebuilds every earlier reveal up to the commitment, so the coin and every roll can be recomputed.
maxLength: 2 itemsminLength: 2 itemsmatchId
string
Required
The match id, also this record's key (a TID).
maxLength: 13 bytesminLength: 13 bytesplayers
array
of
ref
#player
Required
No description available.
maxLength: 2 itemsminLength: 2 itemsrechains
array
of
ref
#rechain
Optional
Only when a chain ran out: the fresh chains that followed, in order.
maxLength: 100 itemsseat
integer
Required
Which player saved this record (1 or 2, an index into players).
minimum: 1maximum: 2target
integer
Required
The score that wins, a house setting agreed before the coin.
minimum: 1maximum: 1000turns
array
of
ref
#turn
Required
Every turn in play order.
maxLength: 10000 itemswinner
integer
Required
No description available.
minimum: 1maximum: 2View raw schema
{
"description": "One player's copy of a finished Daisy match. Each player saves their own; the record key is the match id (a TID made when the commitments are exchanged, just before the coin), so the two copies share it. A player against the bot saves alone.",
"key": "tid",
"record": {
"properties": {
"commitments": {
"description": "Each player's commitment, in player order: the top of a SHA-256 hash chain made from a secret seed before the coin.",
"items": {
"ref": "#link",
"type": "ref"
},
"maxLength": 2,
"minLength": 2,
"type": "array"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"ending": {
"knownValues": [
"won",
"forfeit"
],
"type": "string"
},
"firstPlayer": {
"description": "Who the coin (roll 0) chose to start.",
"maximum": 2,
"minimum": 1,
"type": "integer"
},
"forfeitReason": {
"description": "Only for a forfeit: the loser let the turn timer run out, was away too long, or didn't reveal their link for a roll.",
"knownValues": [
"turn-timeout",
"away",
"no-reveal"
],
"type": "string"
},
"house": {
"description": "The house tile that refereed the match, as pinned by both players' pages.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"lastReveals": {
"description": "The last link each player revealed on that chain, in player order. Hashing forward from it rebuilds every earlier reveal up to the commitment, so the coin and every roll can be recomputed.",
"items": {
"ref": "#link",
"type": "ref"
},
"maxLength": 2,
"minLength": 2,
"type": "array"
},
"matchId": {
"description": "The match id, also this record's key (a TID).",
"maxLength": 13,
"minLength": 13,
"type": "string"
},
"players": {
"items": {
"ref": "#player",
"type": "ref"
},
"maxLength": 2,
"minLength": 2,
"type": "array"
},
"rechains": {
"description": "Only when a chain ran out: the fresh chains that followed, in order.",
"items": {
"ref": "#rechain",
"type": "ref"
},
"maxLength": 100,
"type": "array"
},
"seat": {
"description": "Which player saved this record (1 or 2, an index into players).",
"maximum": 2,
"minimum": 1,
"type": "integer"
},
"target": {
"description": "The score that wins, a house setting agreed before the coin.",
"maximum": 1000,
"minimum": 1,
"type": "integer"
},
"turns": {
"description": "Every turn in play order.",
"items": {
"ref": "#turn",
"type": "ref"
},
"maxLength": 10000,
"type": "array"
},
"winner": {
"maximum": 2,
"minimum": 1,
"type": "integer"
}
},
"required": [
"matchId",
"seat",
"target",
"players",
"firstPlayer",
"commitments",
"lastReveals",
"turns",
"winner",
"ending",
"createdAt"
],
"type": "object"
},
"type": "record"
}