{
  "lexicon": 1,
  "id": "site.standard.document",
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "type": "record",
      "key": "tid",
      "description": "A document record representing a published article, blog post, or other content. Documents can belong to a publication or exist independently.",
      "record": {
        "type": "object",
        "required": ["site", "title", "publishedAt"],
        "properties": {
          "site": {
            "type": "string",
            "format": "uri",
            "description": "Points to a publication record (at://) or a publication url (https://) for loose documents."
          },
          "title": {
            "type": "string",
            "maxLength": 5000,
            "maxGraphemes": 500,
            "description": "Title of the document."
          },
          "publishedAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp of the document's publish time."
          },
          "content": {
            "type": "union",
            "closed": false,
            "refs": [],
            "description": "Open union used to define the record's content. Each entry must specify a $type."
          },
          "description": {
            "type": "string",
            "maxLength": 30000,
            "maxGraphemes": 3000,
            "description": "A brief description or excerpt from the document."
          },
          "textContent": {
            "type": "string",
            "description": "Plaintext representation of the document's contents. Should not contain markdown or other formatting."
          },
          "updatedAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp of the document's last edit."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 1280,
              "maxGraphemes": 128
            },
            "description": "Array of strings used to tag or categorize the document."
          },
          "path": {
            "type": "string",
            "description": "Combine with site URL to construct a canonical URL to the document."
          },
          "coverImage": {
            "type": "blob",
            "accept": ["image/*"],
            "maxSize": 1000000,
            "description": "Cover image. Less than 1MB."
          },
          "bskyPostRef": {
            "type": "ref",
            "ref": "com.atproto.repo.strongRef",
            "description": "Strong reference to a Bluesky post."
          }
        }
      }
    }
  }
}
