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