{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "item": {
      "properties": {
        "description": {
          "maxGraphemes": 300,
          "maxLength": 3000,
          "type": "string"
        },
        "image": {
          "accept": [
            "image/png",
            "image/jpeg",
            "image/webp"
          ],
          "maxSize": 1000000,
          "type": "blob"
        },
        "imageAlt": {
          "maxGraphemes": 300,
          "maxLength": 3000,
          "type": "string"
        },
        "imageUrl": {
          "description": "An image hosted elsewhere (e.g. a Wikimedia Commons thumbnail), when there is no `image` blob. `source` credits it.",
          "format": "uri",
          "maxLength": 2000,
          "type": "string"
        },
        "name": {
          "maxGraphemes": 64,
          "maxLength": 640,
          "type": "string"
        },
        "source": {
          "description": "Where the image (or the item) came from, for credit (e.g. the Wikipedia article).",
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "main": {
      "description": "Content a player made for a game, such as a Tier Madness category or criterion. It lives in its author's repo; the game uses it only once the game's publisher approves it (a games.cavu.approval whose subject is this record's exact version, so an edit needs approving again). rkey MUST be '<game>:<id>' (a TID); readers reject records whose rkey doesn't start with their own `game`.",
      "key": "any",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "maxGraphemes": 300,
            "maxLength": 3000,
            "type": "string"
          },
          "details": {
            "description": "Game-specific, typed by the game: an object with $type in the game's own lexicon.",
            "type": "unknown"
          },
          "game": {
            "ref": "games.cavu.defs#slug",
            "type": "ref"
          },
          "image": {
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp"
            ],
            "description": "Cover art.",
            "maxSize": 1000000,
            "type": "blob"
          },
          "imageAlt": {
            "maxGraphemes": 300,
            "maxLength": 3000,
            "type": "string"
          },
          "items": {
            "description": "The things in it, when it is a list (a category's entries). A single-line add-on (a criterion) leaves it out.",
            "items": {
              "ref": "#item",
              "type": "ref"
            },
            "maxLength": 200,
            "type": "array"
          },
          "kind": {
            "description": "What sort of add-on, in the game's own terms (e.g. Tier Madness: 'category', 'criteria').",
            "maxLength": 32,
            "type": "string"
          },
          "name": {
            "maxGraphemes": 64,
            "maxLength": 640,
            "type": "string"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "game",
          "kind",
          "name",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "games.cavu.addon",
  "lexicon": 1
}
