A period record, written by the game master; a link in a game's ledger.
any
Any valid record key
Properties
batch
blob
Required
The batch blob: the period's lines (envelopes, bot orders, refusals, key changes) as gzip-compressed JSON Lines.
maxSize: 1.0 MBencryption
unknown
Optional
An encryption descriptor, absent in sandbox games until M4.
game
ref
com.atproto.repo.strongRef
Required
A strongRef to the game this period belongs to.
index
integer
Required
The period's index, from zero.
minimum: 0keyChanges
array
of
ref
#keyChange
Required
The session key changes that took effect during this period.
maxLength: 100 itemsprevious
ref
com.atproto.repo.strongRef
Optional
A strongRef to the previous period; absent for period zero.
secret
string
Required
The secret for this period, revealed here as 64 lowercase hex digits; hashing it gives the previous link's commitment.
maxLength: 64 bytesstateRoot
string
Required
The root of the state after the period's last tick, as 64 lowercase hex digits.
maxLength: 64 bytesticks
ref
#tickRange
Required
The tick range the period covers.
View raw schema
{
"description": "A period record, written by the game master; a link in a game's ledger.",
"key": "any",
"record": {
"properties": {
"batch": {
"accept": [
"application/gzip"
],
"description": "The batch blob: the period's lines (envelopes, bot orders, refusals, key changes) as gzip-compressed JSON Lines.",
"maxSize": 1000000,
"type": "blob"
},
"encryption": {
"description": "An encryption descriptor, absent in sandbox games until M4.",
"type": "unknown"
},
"game": {
"description": "A strongRef to the game this period belongs to.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"index": {
"description": "The period's index, from zero.",
"minimum": 0,
"type": "integer"
},
"keyChanges": {
"description": "The session key changes that took effect during this period.",
"items": {
"ref": "#keyChange",
"type": "ref"
},
"maxLength": 100,
"type": "array"
},
"previous": {
"description": "A strongRef to the previous period; absent for period zero.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"secret": {
"description": "The secret for this period, revealed here as 64 lowercase hex digits; hashing it gives the previous link's commitment.",
"maxLength": 64,
"type": "string"
},
"stateRoot": {
"description": "The root of the state after the period's last tick, as 64 lowercase hex digits.",
"maxLength": 64,
"type": "string"
},
"ticks": {
"description": "The tick range the period covers.",
"ref": "#tickRange",
"type": "ref"
}
},
"required": [
"game",
"index",
"ticks",
"stateRoot",
"batch",
"secret",
"keyChanges"
],
"type": "object"
},
"type": "record"
}