# actor.rpg.master

> Published by [rpg.actor](https://lexicon.garden/identity/did:plc:kwgllf365cwmxbnxitx4pjdj)

✓ This is the authoritative definition for this NSID.

## Description

A game master's validation of a player's RPG data for a specific system. One record per player per system per GM.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:kwgllf365cwmxbnxitx4pjdj/actor.rpg.master)
- [Documentation](https://lexicon.garden/lexicon/did:plc:kwgllf365cwmxbnxitx4pjdj/actor.rpg.master/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:kwgllf365cwmxbnxitx4pjdj/actor.rpg.master/examples)

## Definitions

### `actor.rpg.master`

**Type**: `record`

A master record validating one player's stats for one system. Multiple GMs can validate the same player.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `stats` | `unknown` | No | Snapshot of the player's stats for this system. Omitted when snapshotScope is 'none'. |
| `player` | `string` (did) | Yes | DID of the player this record validates |
| `system` | `string` | Yes | The stat system being validated (e.g. 'dnd', 'reverie', 'rmmz') |
| `campaign` | `string` | No | Name of the campaign this validation relates to |
| `createdAt` | `string` (datetime) | Yes | When this record was created |
| `spriteCid` | `string` | No | CID of the approved sprite blob (optional) |
| `updatedAt` | `string` (datetime) | No | When this record was last modified |
| `snapshotScope` | `string` | No | What portions of stats are validated. 'none' = inherent trust (always valid), 'custom' = selected fields only, 'full' = all fields must match. Defaults to 'full' if omitted. |

## Examples

The following examples demonstrate valid data for this lexicon. [View all examples](https://lexicon.garden/lexicon/did:plc:kwgllf365cwmxbnxitx4pjdj/actor.rpg.master/examples)

### Example 1 (`#main`)

**Description**: A GM validating a player's DCC stats.

```json
{
  "$type": "actor.rpg.master",
  "stats": {
    "hp": {
      "max": 12,
      "current": 12
    },
    "identity": {
      "class": "Cleric",
      "level": 1,
      "alignment": "Chaotic"
    },
    "abilities": {
      "agi": 10,
      "int": 13,
      "luk": 8,
      "per": 14,
      "sta": 15,
      "str": 12
    }
  },
  "player": "did:plc:ps54mz3jlmxpiqw2xqvn66oc",
  "system": "dcc",
  "campaign": "Reverie Crawl",
  "createdAt": "2026-03-01T20:00:00.000Z",
  "updatedAt": "2026-03-18T14:51:34.567Z",
  "snapshotScope": "full"
}
```

## Raw Schema

```json
{
  "id": "actor.rpg.master",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "player",
          "system",
          "createdAt"
        ],
        "properties": {
          "stats": {
            "type": "unknown",
            "description": "Snapshot of the player's stats for this system. Omitted when snapshotScope is 'none'."
          },
          "player": {
            "type": "string",
            "format": "did",
            "description": "DID of the player this record validates"
          },
          "system": {
            "type": "string",
            "maxLength": 50,
            "description": "The stat system being validated (e.g. 'dnd', 'reverie', 'rmmz')"
          },
          "campaign": {
            "type": "string",
            "maxLength": 100,
            "description": "Name of the campaign this validation relates to"
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this record was created"
          },
          "spriteCid": {
            "type": "string",
            "maxLength": 200,
            "description": "CID of the approved sprite blob (optional)"
          },
          "updatedAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this record was last modified"
          },
          "snapshotScope": {
            "type": "string",
            "maxLength": 20,
            "description": "What portions of stats are validated. 'none' = inherent trust (always valid), 'custom' = selected fields only, 'full' = all fields must match. Defaults to 'full' if omitted.",
            "knownValues": [
              "none",
              "custom",
              "full"
            ]
          }
        }
      },
      "description": "A master record validating one player's stats for one system. Multiple GMs can validate the same player."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "A game master's validation of a player's RPG data for a specific system. One record per player per system per GM."
}
```
