{
"id": "page.mooring.page",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"path",
"title",
"createdAt"
],
"properties": {
"path": {
"type": "string",
"maxLength": 1024,
"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."
},
"site": {
"type": "string",
"format": "at-uri",
"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')."
},
"title": {
"type": "string",
"maxLength": 5000,
"maxGraphemes": 500
},
"labels": {
"refs": [
"com.atproto.label.defs#selfLabels"
],
"type": "union"
},
"content": {
"refs": [
"#markdown"
],
"type": "union",
"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."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this record was created."
},
"updatedAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp of the last content update."
},
"visibility": {
"type": "string",
"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"
]
},
"description": {
"type": "string",
"maxLength": 30000,
"description": "Short description of the page, used for meta tags and previews.",
"maxGraphemes": 3000
},
"publishedAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp when the page was first made public. Omit for pages that have never been published."
}
}
}
},
"markdown": {
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 100000,
"description": "Page body as CommonMark markdown."
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "An authored page on a Mooring site (e.g. /about, /now, /contact)."
}