{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Defines a badge that can be awarded via badge award records to users, projects, or activity claims.",
      "key": "tid",
      "record": {
        "properties": {
          "allowedIssuers": {
            "description": "Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it.",
            "items": {
              "ref": "app.certified.defs#did",
              "type": "ref"
            },
            "maxLength": 100,
            "type": "array"
          },
          "badgeType": {
            "description": "Category of the badge. Values beyond the known set are permitted.",
            "knownValues": [
              "endorsement",
              "verification",
              "participation",
              "certification",
              "affiliation",
              "recognition"
            ],
            "maxLength": 100,
            "type": "string"
          },
          "createdAt": {
            "description": "Client-declared timestamp when this record was originally created",
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "description": "Optional short statement describing what the badge represents.",
            "maxGraphemes": 500,
            "maxLength": 5000,
            "type": "string"
          },
          "icon": {
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp",
              "image/svg+xml"
            ],
            "description": "Icon representing the badge, stored as a blob for compact visual display.",
            "maxSize": 1048576,
            "type": "blob"
          },
          "signatures": {
            "description": "Optional cryptographic signatures attesting to this record's content.",
            "ref": "app.certified.signature.defs#list",
            "type": "ref"
          },
          "title": {
            "description": "Human-readable title of the badge.",
            "maxLength": 256,
            "type": "string"
          }
        },
        "required": [
          "title",
          "badgeType",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "app.certified.badge.definition",
  "lexicon": 1
}
