{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "docusaurus:docs:3.10",
  "title": "Docusaurus docs front matter v3.10",
  "description": "Front matter accepted by @docusaurus/plugin-content-docs as of Docusaurus 3.10. Docusaurus marks no field as required, so this is a format check, not a presence check: it constrains the shape of every field the plugin documents and requires none of them. Unknown keys are tolerated, matching Docusaurus, which allows theme and plugin front matter. It claims neither `type` nor `action`, so it composes with diataxis:diataxis:1.0, tgdp:templates:1.0, or passo-uno:seven-action:1.0. Stacking it with google:okf:0.1 is the one exception: both define `tags`, and OKF allows string tags only, so a Docusaurus tag object fails against OKF. Pair it with docusaurus:blog:3.10 and docusaurus:pages:3.10 via per-directory config overrides. See https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs#markdown-front-matter",
  "type": "object",
  "additionalProperties": true,
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique document id. Defaults to the file path without the extension."
    },
    "title": {
      "type": "string",
      "description": "Text title used for page metadata. Defaults to the Markdown title, then the id. May be empty."
    },
    "pagination_label": {
      "type": "string",
      "description": "Text shown in the next/previous buttons for this document. Defaults to `sidebar_label`, then `title`."
    },
    "sidebar_label": {
      "type": "string",
      "description": "Text shown for this document in the sidebar. Defaults to `title`."
    },
    "sidebar_position": {
      "type": "number",
      "description": "Position of this document in an autogenerated sidebar. A number, so quoting it makes it a string and Docusaurus rejects it."
    },
    "sidebar_class_name": {
      "type": "string",
      "description": "Class name applied to this document's sidebar label."
    },
    "sidebar_key": {
      "type": "string",
      "description": "Stable identifier for the sidebar item, used mainly for i18n."
    },
    "sidebar_custom_props": {
      "type": "object",
      "description": "Arbitrary custom properties attached to this document's sidebar item."
    },
    "displayed_sidebar": {
      "type": ["string", "null"],
      "description": "Name of the sidebar to display when viewing this document, overriding the one it belongs to."
    },
    "hide_title": {
      "type": "boolean",
      "description": "Hide the front matter title at the top of the page. Does not hide a Markdown `#` title."
    },
    "hide_table_of_contents": {
      "type": "boolean",
      "description": "Hide the right-hand table of contents."
    },
    "toc_min_heading_level": {
      "type": "number",
      "minimum": 2,
      "maximum": 6,
      "description": "Shallowest heading level shown in the table of contents. Between 2 and 6, and no deeper than `toc_max_heading_level`. Typed `number` rather than `integer` because upstream is `Joi.number().min(2).max(6)` with no `.integer()`; being stricter here would fail a page Docusaurus builds."
    },
    "toc_max_heading_level": {
      "type": "number",
      "minimum": 2,
      "maximum": 6,
      "description": "Deepest heading level shown in the table of contents. Between 2 and 6. Typed `number` rather than `integer` to match upstream, as with `toc_min_heading_level`."
    },
    "pagination_next": {
      "type": ["string", "null"],
      "description": "Id of the document the \"Next\" link points to. `null` removes the link."
    },
    "pagination_prev": {
      "type": ["string", "null"],
      "description": "Id of the document the \"Previous\" link points to. `null` removes the link."
    },
    "parse_number_prefixes": {
      "type": "boolean",
      "description": "Whether the number-prefix parser applies to this document, overriding the plugin's `numberPrefixParser` option."
    },
    "custom_edit_url": {
      "type": ["string", "null"],
      "format": "uri-reference",
      "description": "URL of this document's edit page. `null` removes the edit link; a relative path is legal."
    },
    "keywords": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Keywords meta tag for search engines."
    },
    "description": {
      "type": "string",
      "description": "Meta description for search engines. Defaults to the first line of Markdown content. May be empty."
    },
    "image": {
      "type": "string",
      "format": "uri-reference",
      "description": "Cover image used in social link previews. A site-root path such as `/img/card.png` is legal."
    },
    "slug": {
      "type": "string",
      "description": "Custom URL for this document. Defaults to the file path."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": ["string", "object"],
        "required": ["label", "permalink"],
        "additionalProperties": true,
        "properties": {
          "label": { "type": "string" },
          "permalink": { "type": "string" },
          "description": { "type": "string" }
        }
      },
      "description": "Tags for this document: either a string, or an object carrying both a `label` and a `permalink`. `required` and `properties` bind only to the object form, so a plain string tag passes and a half-written object reports the key it is missing."
    },
    "draft": {
      "type": "boolean",
      "description": "A draft document is available in development only. Cannot be combined with `unlisted`."
    },
    "unlisted": {
      "type": "boolean",
      "description": "An unlisted document is published but hidden from navigation, search, and sitemaps. Cannot be combined with `draft`."
    },
    "last_update": {
      "type": "object",
      "minProperties": 1,
      "additionalProperties": false,
      "properties": {
        "author": {
          "type": "string",
          "description": "Overrides the last-update author."
        },
        "date": {
          "type": "string",
          "description": "Overrides the last-update date."
        }
      },
      "description": "Overrides the computed last-update information. Takes `author`, `date`, or both, and at least one of them."
    }
  },
  "if": {
    "required": ["draft"],
    "properties": { "draft": { "const": true } }
  },
  "then": {
    "properties": { "unlisted": { "const": false } }
  }
}
