A calm place to write long-form, and publish it to the open social web.
skypress.blog/
1{
2 "lexicon": 1,
3 "id": "blog.skypress.content.gutenberg",
4 "defs": {
5 "main": {
6 "type": "object",
7 "description": "A WordPress Gutenberg block tree, the canonical content of a SkyPress document. Placed inside the open `content` union of a `site.standard.document`. Readers that don't understand this format should fall back to the document's `textContent`.",
8 "required": ["version", "blocks"],
9 "properties": {
10 "version": {
11 "type": "integer",
12 "description": "Serialization version of the block tree. Bump only for breaking changes; non-breaking changes are additive. Currently 1.",
13 "minimum": 1
14 },
15 "blocks": {
16 "type": "array",
17 "description": "The Gutenberg block tree exactly as produced by the editor's `onSaveBlocks` (NOT rendered HTML). Each item is a block node: `{ name: string, attributes: object, innerBlocks: block[] }`, where `name` is the Gutenberg block name (e.g. `core/paragraph`). Items are typed `unknown` because block attributes are open-ended per block type.",
18 "items": { "type": "unknown" }
19 },
20 "mentions": {
21 "type": "array",
22 "description": "Optional, additive. Accounts mentioned in the body, mirrored from the inline `<a data-did>` anchors in the block tree. A flat discovery list for other appviews; SkyPress's own reader renders mentions from the inline anchors, not this field. Each item is `{ did: string, handle: string }`.",
23 "items": { "type": "unknown" }
24 }
25 }
26 }
27 }
28}