# gg.infinitetavern.chronicle.replay

> Published by [infinitetavern.gg](https://lexicon.garden/identity/did:plc:vxwgn77hp5ikvbiggm5es3rv)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:vxwgn77hp5ikvbiggm5es3rv/gg.infinitetavern.chronicle.replay)
- [Documentation](https://lexicon.garden/lexicon/did:plc:vxwgn77hp5ikvbiggm5es3rv/gg.infinitetavern.chronicle.replay/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:vxwgn77hp5ikvbiggm5es3rv/gg.infinitetavern.chronicle.replay/examples)

## Definitions

### `gg.infinitetavern.chronicle.replay`

**Type**: `record`

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.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `rounds` | `array` | Yes | Ordered array of round snapshots, one per combat round. |
| `lobbyId` | `string` | Yes | Server-assigned lobby UUID identifying the tavern battle. |
| `playedAt` | `string` (datetime) | Yes | ISO 8601 UTC timestamp when the battle concluded. |
| `roundCount` | `integer` | Yes | Total number of combat rounds in the battle. |
| `seasonNumber` | `integer` | Yes | The season (campaign chapter) this battle took place in. |

### `gg.infinitetavern.chronicle.replay#pairing`

**Type**: `object`

A single combat pairing between two adventurers in a round.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `playerA` | `string` (did) | Yes | DID of the first combatant. |
| `playerB` | `string` (did) | Yes | DID of the second combatant. |
| `winnerDid` | `string` (did) | Yes | DID of the round winner. |
| `damageDealt` | `integer` | No | Damage dealt to the loser. |

### `gg.infinitetavern.chronicle.replay#roundSnapshot`

**Type**: `object`

A snapshot of one combat round — the pairings and outcomes.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `pairings` | `array` | Yes | Combat pairings for this round. |
| `roundNumber` | `integer` | Yes | 1-indexed round number. |
| `eliminations` | `array` | No | DIDs of adventurers eliminated after this round. |

## Raw Schema

```json
{
  "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
}
```
