{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A reading list curated by a librarian",
      "key": "tid",
      "record": {
        "properties": {
          "books": {
            "description": "Required books for this reading challenge",
            "items": {
              "ref": "bond.biblio.defs#bookRequirement",
              "type": "ref"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "When this list was created",
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "description": "Description of the reading challenge",
            "maxGraphemes": 1000,
            "maxLength": 2000,
            "type": "string"
          },
          "duedate": {
            "description": "Deadline for completing the reading challenge",
            "format": "datetime",
            "type": "string"
          },
          "librarians": {
            "description": "DIDs of users who can issue stamps for this list",
            "items": {
              "format": "did",
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "description": "Display name for the reading list",
            "maxGraphemes": 100,
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "title",
          "librarians",
          "books",
          "duedate",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "A curated reading challenge. Librarians define book requirements with a deadline; readers apply books; librarians issue stamps for verified completion.",
  "id": "bond.biblio.list",
  "lexicon": 1
}
