{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "key": "tid",
      "record": {
        "properties": {
          "content": {
            "closed": false,
            "description": "Open union defining the page's content. Each entry must specify a $type; other lexicons may extend this with additional content formats.",
            "refs": [
              "#markdown"
            ],
            "type": "union"
          },
          "createdAt": {
            "description": "Client-declared timestamp when this record was created.",
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "description": "Short description of the page, used for meta tags and previews.",
            "maxGraphemes": 3000,
            "maxLength": 30000,
            "type": "string"
          },
          "labels": {
            "refs": [
              "com.atproto.label.defs#selfLabels"
            ],
            "type": "union"
          },
          "path": {
            "description": "URL path for this page, with a leading slash (ex: /about). Paths should be lowercase; paths differing only in case are the same page. Uniqueness within a site is enforced by the app, not the lexicon; renderers encountering duplicates should prefer the most recently updated page.",
            "maxLength": 1024,
            "type": "string"
          },
          "publishedAt": {
            "description": "Timestamp when the page was first made public. Omit for pages that have never been published.",
            "format": "datetime",
            "type": "string"
          },
          "site": {
            "description": "AT-URI of the page.mooring.site record this page belongs to. When absent, the page belongs to the owner's default site (rkey 'self').",
            "format": "at-uri",
            "type": "string"
          },
          "title": {
            "maxGraphemes": 500,
            "maxLength": 5000,
            "type": "string"
          },
          "updatedAt": {
            "description": "Timestamp of the last content update.",
            "format": "datetime",
            "type": "string"
          },
          "visibility": {
            "default": "public",
            "description": "Rendering visibility: 'public' pages are served and listed, 'unlisted' pages are served but not listed, 'draft' pages are not served. This controls rendering only — atproto records are publicly readable regardless.",
            "knownValues": [
              "public",
              "unlisted",
              "draft"
            ],
            "type": "string"
          }
        },
        "required": [
          "path",
          "title",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "markdown": {
      "properties": {
        "text": {
          "description": "Page body as CommonMark markdown.",
          "maxLength": 100000,
          "type": "string"
        }
      },
      "required": [
        "text"
      ],
      "type": "object"
    }
  },
  "description": "An authored page on a Mooring site (e.g. /about, /now, /contact).",
  "id": "page.mooring.page",
  "lexicon": 1
}
