{
  "$ref": "#/definitions/Heading1",
  "definitions": {
    "Heading1": {
      "type": "object",
      "properties": {
        "nodeType": {
          "type": "string",
          "enum": [
            "heading-1"
          ]
        },
        "data": {
          "type": "object",
          "properties": {}
        },
        "content": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/definitions/Inline"
              },
              {
                "$ref": "#/definitions/Text"
              }
            ]
          }
        }
      },
      "additionalProperties": false,
      "required": [
        "content",
        "data",
        "nodeType"
      ]
    },
    "Inline": {
      "type": "object",
      "properties": {
        "nodeType": {
          "$ref": "#/definitions/INLINES"
        },
        "content": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/definitions/Inline"
              },
              {
                "$ref": "#/definitions/Text"
              }
            ]
          }
        },
        "data": {
          "$ref": "#/definitions/NodeData"
        }
      },
      "additionalProperties": false,
      "required": [
        "content",
        "data",
        "nodeType"
      ]
    },
    "INLINES": {
      "description": "Map of all Contentful inline types. Inline contain inline or text nodes.",
      "type": "string",
      "enum": [
        "asset-hyperlink",
        "embedded-entry-inline",
        "embedded-resource-inline",
        "entry-hyperlink",
        "hyperlink",
        "resource-hyperlink"
      ]
    },
    "Text": {
      "type": "object",
      "properties": {
        "nodeType": {
          "type": "string",
          "enum": [
            "text"
          ]
        },
        "value": {
          "type": "string"
        },
        "marks": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Mark"
          }
        },
        "data": {
          "$ref": "#/definitions/NodeData"
        }
      },
      "additionalProperties": false,
      "required": [
        "data",
        "marks",
        "nodeType",
        "value"
      ]
    },
    "Mark": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "type"
      ]
    },
    "NodeData": {
      "additionalProperties": true,
      "type": "object"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}