{
"id": "gg.infinitetavern.chronicle.replay",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"lobbyId",
"seasonNumber",
"roundCount",
"playedAt",
"rounds"
],
"properties": {
"rounds": {
"type": "array",
"items": {
"ref": "#roundSnapshot",
"type": "ref"
},
"description": "Ordered array of round snapshots, one per combat round."
},
"lobbyId": {
"type": "string",
"description": "Server-assigned lobby UUID identifying the tavern battle."
},
"playedAt": {
"type": "string",
"format": "datetime",
"description": "ISO 8601 UTC timestamp when the battle concluded."
},
"roundCount": {
"type": "integer",
"minimum": 1,
"description": "Total number of combat rounds in the battle."
},
"seasonNumber": {
"type": "integer",
"minimum": 1,
"description": "The season (campaign chapter) this battle took place in."
}
}
},
"description": "A magical scrying record that preserves the full round-by-round replay of a tavern battle. Written to the bot account's PDS; referenced by chronicle entries and herald battle reports for playback."
},
"pairing": {
"type": "object",
"required": [
"playerA",
"playerB",
"winnerDid"
],
"properties": {
"playerA": {
"type": "string",
"format": "did",
"description": "DID of the first combatant."
},
"playerB": {
"type": "string",
"format": "did",
"description": "DID of the second combatant."
},
"winnerDid": {
"type": "string",
"format": "did",
"description": "DID of the round winner."
},
"damageDealt": {
"type": "integer",
"minimum": 0,
"description": "Damage dealt to the loser."
}
},
"description": "A single combat pairing between two adventurers in a round."
},
"roundSnapshot": {
"type": "object",
"required": [
"roundNumber",
"pairings"
],
"properties": {
"pairings": {
"type": "array",
"items": {
"ref": "#pairing",
"type": "ref"
},
"description": "Combat pairings for this round."
},
"roundNumber": {
"type": "integer",
"minimum": 1,
"description": "1-indexed round number."
},
"eliminations": {
"type": "array",
"items": {
"type": "string",
"format": "did"
},
"description": "DIDs of adventurers eliminated after this round."
}
},
"description": "A snapshot of one combat round — the pairings and outcomes."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}