UNPKG

myst-spec

Version:

MyST schema, testcases, and typescript types

1,856 lines 45.2 kB
{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://spec.myst.tools/json-schema/myst.schema.json", "description": "Myst syntax tree built on existing mdast schemas", "type": "object", "allOf": [ { "properties": { "type": { "const": "root" }, "children": { "description": "Top-level children of myst document", "anyOf": [ { "type": "array", "items": { "anyOf": [ { "$ref": "#/$defs/Block" }, { "$ref": "#/$defs/BlockBreak" }, { "$ref": "#/$defs/FlowContent" } ] } }, { "type": "array", "items": { "$ref": "#/$defs/ListContent" } }, { "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } } ] }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ], "$defs": { "FlowContent": { "anyOf": [ { "$ref": "#/$defs/Paragraph" }, { "$ref": "#/$defs/Definition" }, { "$ref": "#/$defs/Heading" }, { "$ref": "#/$defs/ThematicBreak" }, { "$ref": "#/$defs/Blockquote" }, { "$ref": "#/$defs/List" }, { "$ref": "#/$defs/HTML" }, { "$ref": "#/$defs/Code" }, { "$ref": "#/$defs/Comment" }, { "$ref": "#/$defs/Target" }, { "$ref": "#/$defs/Directive" }, { "$ref": "#/$defs/Admonition" }, { "$ref": "#/$defs/Container" }, { "$ref": "#/$defs/Math" }, { "$ref": "#/$defs/Table" }, { "$ref": "#/$defs/FootnoteDefinition" } ] }, "ListContent": { "anyOf": [ { "$ref": "#/$defs/ListItem" } ] }, "PhrasingContent": { "anyOf": [ { "$ref": "#/$defs/StaticPhrasingContent" }, { "$ref": "#/$defs/Emphasis" }, { "$ref": "#/$defs/Strong" }, { "$ref": "#/$defs/Link" }, { "$ref": "#/$defs/LinkReference" }, { "$ref": "#/$defs/Subscript" }, { "$ref": "#/$defs/Superscript" }, { "$ref": "#/$defs/Underline" }, { "$ref": "#/$defs/Abbreviation" }, { "$ref": "#/$defs/CrossReference" }, { "$ref": "#/$defs/FootnoteReference" } ] }, "StaticPhrasingContent": { "anyOf": [ { "$ref": "#/$defs/Text" }, { "$ref": "#/$defs/HTML" }, { "$ref": "#/$defs/EmphasisStatic" }, { "$ref": "#/$defs/StrongStatic" }, { "$ref": "#/$defs/InlineCode" }, { "$ref": "#/$defs/Break" }, { "$ref": "#/$defs/Image" }, { "$ref": "#/$defs/ImageReference" }, { "$ref": "#/$defs/Role" }, { "$ref": "#/$defs/SubscriptStatic" }, { "$ref": "#/$defs/SuperscriptStatic" }, { "$ref": "#/$defs/UnderlineStatic" }, { "$ref": "#/$defs/InlineMath" } ] }, "BlockBreak": { "type": "object", "description": "Top-level break in the myst document, breaking it into Blocks", "allOf": [ { "properties": { "type": { "const": "blockBreak" }, "meta": { "description": "Block metadata. Conventionally this is a stringified JSON dictionary but it may be any arbitrary string.", "type": "string" }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Node" } ] }, "Block": { "type": "object", "description": "Top-level content blocks or cells the myst document, delimited by BlockBreaks", "allOf": [ { "properties": { "type": { "const": "block" }, "meta": { "description": "block metadata from preceding break; conventionally, a stringified JSON dictionary but may be any arbitrary string", "type": "string" }, "children": { "description": "Top-level children of myst document", "anyOf": [ { "type": "array", "items": { "$ref": "#/$defs/FlowContent" } }, { "type": "array", "items": { "$ref": "#/$defs/ListContent" } }, { "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } } ] }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Node" } ] }, "Role": { "description": "Custom in-line behavior", "type": "object", "allOf": [ { "required": [ "name" ], "properties": { "type": { "const": "mystRole" }, "name": { "type": "string" }, "value": { "description": "content of the directive", "type": "string" }, "children": { "description": "parsed role content", "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Node" } ] }, "Directive": { "description": "Content block with predefined behavior", "type": "object", "allOf": [ { "required": [ "name" ], "properties": { "type": { "const": "mystDirective" }, "name": { "type": "string" }, "args": { "type": "string" }, "options": { "type": "object" }, "value": { "description": "body of the directive, excluding options", "type": "string" }, "children": { "description": "parsed directive content", "type": "array", "items": { "anyOf": [ { "$ref": "#/$defs/FlowContent" }, { "$ref": "#/$defs/PhrasingContent" } ] } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Node" } ] }, "Target": { "description": "Target node - provides identifier/label for the following node", "type": "object", "allOf": [ { "properties": { "type": { "const": "mystTarget" }, "label": { "description": "unresolved target label", "type": "string" }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Node" } ] }, "CrossReference": { "description": "In-line reference to an associated node", "type": "object", "allOf": [ { "properties": { "type": { "const": "crossReference" }, "kind": { "type": "string", "enum": [ "eq", "numref", "ref" ], "description": "Indicates if the references should be numbered.\n```{warning}\nThe `kind` was based on docutils and is subject to change as we improve the `crossReference` experience.\n```" }, "children": { "type": "array", "items": { "$ref": "#/$defs/StaticPhrasingContent" }, "description": "Children of the crossReference, can include text with \"%s\" or \"{number}\" and enumerated references will be filled in." }, "identifier": {}, "label": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Association" }, { "$ref": "#/$defs/Node" } ] }, "Abbreviation": { "description": "Abbreviation node described by title", "type": "object", "allOf": [ { "properties": { "type": { "const": "abbreviation" }, "children": { "description": "abbreviated value", "type": "array", "items": { "$ref": "#/$defs/StaticPhrasingContent" } }, "title": { "description": "advisory information for the abbreviation", "type": "string" }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "Admonition": { "description": "Admonition node for drawing attention to text, separate from the neighboring content", "type": "object", "allOf": [ { "properties": { "type": { "const": "admonition" }, "kind": { "description": "kind of admonition, to determine styling", "type": "string", "enum": [ "attention", "caution", "danger", "error", "hint", "important", "note", "seealso", "tip", "warning" ] }, "class": { "description": "admonition class info to override kind", "type": "string" }, "children": { "type": "array", "items": { "anyOf": [ { "$ref": "#/$defs/AdmonitionTitle" }, { "$ref": "#/$defs/FlowContent" } ] }, "description": "An optional `admonitionTitle` followed by the admonitions content." }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Node" } ] }, "AdmonitionTitle": { "description": "Custom title for admonition, replaces kind as title", "type": "object", "allOf": [ { "properties": { "type": { "const": "admonitionTitle" }, "children": { "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "Container": { "description": "Top-level container node to provide association and numbering to child content", "type": "object", "allOf": [ { "required": [ "kind" ], "properties": { "type": { "const": "container" }, "kind": { "description": "kind of container contents", "type": "string", "enum": [ "figure", "table" ] }, "class": { "description": "any custom class information", "type": "string" }, "enumerated": { "description": "count this container for numbering based on kind, e.g. Figure 1a", "type": "boolean" }, "enumerator": { "description": "resolved enumerated value for this container", "type": "string" }, "children": { "type": "array", "items": { "anyOf": [ { "$ref": "#/$defs/Caption" }, { "$ref": "#/$defs/Legend" }, { "$ref": "#/$defs/Image" }, { "$ref": "#/$defs/Table" } ] } }, "identifier": {}, "label": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "if": { "properties": { "kind": { "const": "figure" } } }, "then": { "properties": { "children": { "type": "array", "items": { "anyOf": [ { "$ref": "#/$defs/Caption" }, { "$ref": "#/$defs/Legend" }, { "$ref": "#/$defs/Image" } ] } } } }, "else": { "properties": { "children": { "type": "array", "items": { "anyOf": [ { "$ref": "#/$defs/Caption" }, { "$ref": "#/$defs/Legend" }, { "$ref": "#/$defs/Table" } ] } } } } }, { "$ref": "#/$defs/OptionalAssociation" }, { "$ref": "#/$defs/Parent" } ] }, "Caption": { "description": "Caption for container content", "type": "object", "allOf": [ { "properties": { "type": { "const": "caption" }, "children": { "type": "array", "items": { "$ref": "#/$defs/FlowContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "Legend": { "description": "Legend for container content", "type": "object", "allOf": [ { "properties": { "type": { "const": "legend" }, "children": { "type": "array", "items": { "$ref": "#/$defs/FlowContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "FootnoteReference": { "description": "Inline reference to footnote", "type": "object", "allOf": [ { "properties": { "type": { "const": "footnoteReference" }, "identifier": {}, "label": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Association" }, { "$ref": "#/$defs/Node" } ] }, "FootnoteDefinition": { "description": "Rich footnote content associated with footnote reference", "type": "object", "allOf": [ { "properties": { "type": { "const": "footnoteDefinition" }, "children": { "type": "array", "items": { "$ref": "#/$defs/FlowContent" } }, "identifier": {}, "label": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Association" }, { "$ref": "#/$defs/Parent" } ] }, "Math": { "description": "Math node for presenting numbered equations", "type": "object", "allOf": [ { "properties": { "type": { "const": "math" }, "enumerated": { "description": "count this math block for numbering based on kind, e.g. See equation (1a)", "type": "boolean" }, "enumerator": { "description": "resolved enumerated value for this math block", "type": "string" }, "identifier": {}, "label": {}, "value": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/OptionalAssociation" }, { "$ref": "#/$defs/Literal" } ] }, "InlineMath": { "description": "Fragment of math, similar to InlineCode, using role {math}", "type": "object", "allOf": [ { "properties": { "type": { "const": "inlineMath" }, "value": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Literal" } ] }, "Table": { "description": "Two-dimensional table data", "type": "object", "allOf": [ { "properties": { "type": { "const": "table" }, "align": { "type": "string", "enum": [ "left", "center", "right" ] }, "children": { "type": "array", "items": { "$ref": "#/$defs/TableRow" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "TableRow": { "description": "One row of table containing cells", "type": "object", "allOf": [ { "properties": { "type": { "const": "tableRow" }, "children": { "type": "array", "items": { "$ref": "#/$defs/TableCell" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "TableCell": { "description": "One cell of table", "type": "object", "allOf": [ { "properties": { "type": { "const": "tableCell" }, "header": { "type": "boolean" }, "align": { "description": "alignment of content within cell", "type": "string", "enum": [ "left", "center", "right" ] }, "children": { "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "Subscript": { "description": "Subscript content, using role {subscript}", "type": "object", "allOf": [ { "properties": { "type": { "const": "subscript" }, "children": { "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "SubscriptStatic": { "description": "Subscript content, with static children; used when parent node requires static content", "type": "object", "allOf": [ { "properties": { "type": { "const": "subscript" }, "children": { "type": "array", "items": { "$ref": "#/$defs/StaticPhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "Superscript": { "description": "Superscript content, using role {superscript}", "type": "object", "allOf": [ { "properties": { "type": { "const": "superscript" }, "children": { "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "SuperscriptStatic": { "description": "Superscript content, with static children; used when parent node requires static content", "type": "object", "allOf": [ { "properties": { "type": { "const": "superscript" }, "children": { "type": "array", "items": { "$ref": "#/$defs/StaticPhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "Underline": { "description": "Underline content, using role {underline}", "type": "object", "allOf": [ { "properties": { "type": { "const": "underline" }, "children": { "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "UnderlineStatic": { "description": "Underline content, with static children; used when parent node requires static content", "type": "object", "allOf": [ { "properties": { "type": { "const": "underline" }, "children": { "type": "array", "items": { "$ref": "#/$defs/StaticPhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "Comment": { "description": "Comment nodes for comments present in myst but ignored upon render", "type": "object", "allOf": [ { "properties": { "type": { "const": "mystComment" }, "value": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Literal" } ] }, "Paragraph": { "type": "object", "allOf": [ { "properties": { "type": { "const": "paragraph" }, "children": { "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "Heading": { "type": "object", "allOf": [ { "required": [ "depth" ], "properties": { "type": { "const": "heading" }, "depth": { "type": "integer", "minimum": 1, "maximum": 6 }, "enumerated": { "description": "count this heading for numbering based on kind, e.g. Section 2.4.1", "type": "boolean" }, "enumerator": { "description": "resolved enumerated value for this heading", "type": "string" }, "children": { "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } }, "identifier": {}, "label": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" }, { "$ref": "#/$defs/OptionalAssociation" } ] }, "ThematicBreak": { "type": "object", "allOf": [ { "properties": { "type": { "const": "thematicBreak" }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Node" } ] }, "Blockquote": { "type": "object", "allOf": [ { "properties": { "type": { "const": "blockquote" }, "children": { "type": "array", "items": { "$ref": "#/$defs/FlowContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "List": { "type": "object", "allOf": [ { "properties": { "type": { "const": "list" }, "ordered": { "description": "Is item order important or not?", "type": "boolean" }, "start": { "description": "Starting number of ordered list", "type": "integer" }, "spread": { "description": "One or more children are separated with a blank line from others", "type": "boolean" }, "children": { "type": "array", "items": { "$ref": "#/$defs/ListContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "ListItem": { "type": "object", "allOf": [ { "properties": { "type": { "const": "listItem" }, "spread": { "description": "One or more children are separated with a blank line from others", "type": "boolean" }, "children": { "type": "array", "items": { "anyOf": [ { "$ref": "#/$defs/PhrasingContent" }, { "$ref": "#/$defs/FlowContent" } ] } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "HTML": { "description": "Fragment of raw HTML - does not need to be valid or complete", "type": "object", "allOf": [ { "properties": { "type": { "const": "html" }, "value": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Literal" } ] }, "Code": { "description": "Block of preformatted text", "type": "object", "allOf": [ { "properties": { "type": { "const": "code" }, "lang": { "description": "language of the code", "type": "string" }, "meta": { "description": "custom information relating to the node", "type": "string" }, "class": { "description": "user-defined class for code block", "type": "string" }, "showLineNumbers": { "type": "boolean" }, "startingLineNumber": { "type": "integer", "minimum": 1 }, "emphasizeLines": { "type": "array", "items": { "type": "integer", "minimum": 1 } }, "identifier": {}, "label": {}, "value": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "if": { "required": [ "meta" ] }, "then": { "required": [ "lang" ] }, "else": {} }, { "if": { "required": [ "startingLineNumber" ] }, "then": { "required": [ "showLineNumbers" ] }, "else": {} }, { "$ref": "#/$defs/OptionalAssociation" }, { "$ref": "#/$defs/Literal" } ] }, "Definition": { "description": "Reference to a url resource", "type": "object", "allOf": [ { "properties": { "type": { "const": "definition" }, "identifier": {}, "label": {}, "url": {}, "title": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Association" }, { "$ref": "#/$defs/Resource" }, { "$ref": "#/$defs/Node" } ] }, "Text": { "type": "object", "allOf": [ { "properties": { "type": { "const": "text" }, "value": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Literal" } ] }, "Emphasis": { "description": "Stressed, italicized content", "type": "object", "allOf": [ { "properties": { "type": { "const": "emphasis" }, "children": { "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "EmphasisStatic": { "description": "Stressed, italicized content, with static children; used when parent node requires static content", "type": "object", "allOf": [ { "properties": { "type": { "const": "emphasis" }, "children": { "type": "array", "items": { "$ref": "#/$defs/StaticPhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "Strong": { "description": "Important, serious, urgent, bold content", "type": "object", "allOf": [ { "properties": { "type": { "const": "strong" }, "children": { "type": "array", "items": { "$ref": "#/$defs/PhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "StrongStatic": { "description": "Important, serious, urgent, bold content, with static children; used when parent node requires static content", "type": "object", "allOf": [ { "properties": { "type": { "const": "strong" }, "children": { "type": "array", "items": { "$ref": "#/$defs/StaticPhrasingContent" } }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Parent" } ] }, "InlineCode": { "description": "Fragment of code", "type": "object", "allOf": [ { "properties": { "type": { "const": "inlineCode" }, "value": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Literal" } ] }, "Break": { "description": "Line break", "type": "object", "allOf": [ { "properties": { "type": { "const": "break" }, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Node" } ] }, "Link": { "description": "Hyperlink", "type": "object", "allOf": [ { "properties": { "type": { "const": "link" }, "children": { "type": "array", "items": { "$ref": "#/$defs/StaticPhrasingContent" } }, "url": {}, "title": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Resource" }, { "$ref": "#/$defs/Parent" } ] }, "Image": { "description": "Image hyperlink", "type": "object", "allOf": [ { "properties": { "type": { "const": "image" }, "class": { "description": "user-defined class for image", "type": "string" }, "width": { "description": "image width in pixels or percentage", "type": "string" }, "align": { "type": "string", "enum": [ "left", "center", "right" ] }, "url": {}, "title": {}, "alt": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Resource" }, { "$ref": "#/$defs/Alternative" }, { "$ref": "#/$defs/Node" } ] }, "LinkReference": { "description": "Hyperlink through association", "type": "object", "allOf": [ { "properties": { "type": { "const": "linkReference" }, "children": { "type": "array", "items": { "$ref": "#/$defs/StaticPhrasingContent" } }, "referenceType": {}, "identifier": {}, "label": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Reference" }, { "$ref": "#/$defs/Association" }, { "$ref": "#/$defs/Parent" } ] }, "ImageReference": { "description": "Image through association", "type": "object", "allOf": [ { "properties": { "type": { "const": "imageReference" }, "referenceType": {}, "identifier": {}, "label": {}, "alt": {}, "position": {}, "data": {} }, "additionalProperties": false }, { "$ref": "#/$defs/Reference" }, { "$ref": "#/$defs/Association" }, { "$ref": "#/$defs/Alternative" }, { "$ref": "#/$defs/Node" } ] }, "Resource": { "description": "Reference to external resource", "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string", "description": "A Uniform Resource Locator (URL) to an external resource or link." }, "title": { "description": "advisory information, e.g. for a tooltip", "type": "string" } } }, "OptionalAssociation": { "description": "Internal relation from one node to another; not required by node", "type": "object", "properties": { "identifier": { "description": "identifier that may match another node; value is unparsed and must be normalized such that whitespace is collapsed to single space, initial/final space is trimmed, and case is folded", "type": "string" }, "label": { "description": "node label; character escapes and references are parsed; may be normalized to a unique identifier", "type": "string" } } }, "Association": { "description": "Internal relation from one node to another", "type": "object", "allOf": [ { "required": [ "identifier" ], "properties": { "identifier": {} } }, { "$ref": "#/$defs/OptionalAssociation" } ] }, "Alternative": { "description": "Alternative description of image", "type": "object", "properties": { "alt": { "description": "field describing the image", "type": "string" } } }, "Reference": { "description": "Marker associated to another node", "type": "object", "required": [ "referenceType" ], "properties": { "referenceType": { "description": "explicitness of the reference:\n`shortcut` - reference is implicit, identifier inferred\n`collapsed` - reference explicit, identifier inferred\n`full` - reference explicit, identifier explicit", "type": "string", "enum": [ "shortcut", "collapsed", "full" ] } } }, "Node": { "description": "Base node object, based on the [unist](https://github.com/syntax-tree/unist) syntax tree.", "type": "object", "required": [ "type" ], "properties": { "type": { "description": "identifier for node variant", "type": "string" }, "data": { "description": "information associated by the ecosystem with the node; never specified by mdast", "type": "object" }, "position": { "description": "location of node in source file; must not be present for generated nodes", "$ref": "#/$defs/Position" } } }, "Literal": { "description": "Basic node with required string value", "type": "object", "allOf": [ { "required": [ "value" ], "properties": { "value": { "type": "string", "description": "The value of the node" } } }, { "$ref": "#/$defs/Node" } ] }, "Parent": { "description": "Basic node with required node children", "type": "object", "allOf": [ { "required": [ "children" ], "properties": { "children": { "type": "array", "description": "List of children nodes", "items": { "$ref": "#/$defs/Node" } } } }, { "$ref": "#/$defs/Node" } ] }, "Point": { "description": "One place in a source file", "type": "object", "required": [ "line", "column" ], "properties": { "line": { "description": "line in the source file, 1-indexed", "type": "integer", "minimum": 1 }, "column": { "description": "column in the source file, 1-indexed", "type": "integer", "minimum": 1 }, "offset": { "description": "offset character in the source file, 0-indexed", "type": "integer", "minimum": 0 } }, "additionalProperties": false }, "Position": { "description": "Location of a node in a source file", "type": "object", "required": [ "start", "end" ], "properties": { "start": { "description": "place of first character of parsed source region", "$ref": "#/$defs/Point" }, "end": { "description": "place of first character after parsed source region, whether it exists or not", "$ref": "#/$defs/Point" }, "indent": { "description": "start column at each index in the source region, for elements that span multiple lines", "type": "array", "items": { "type": "integer", "minimum": 0 } } }, "additionalProperties": false } } }