{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "additionalProperties": false,
  "definitions": {
    "item": {
      "required": ["id"],
      "additionalProperties": false,
      "oneOf": [
        {
          "required": ["content_html"],
          "not": {
            "required": ["content_text"]
          }
        },
        {
          "required": ["content_text"],
          "not": {
            "required": ["content_html"]
          }
        },
        {
          "required": ["content_text", "content_html"]
        }
      ],
      "patternProperties": {
        "^_[a-zA-Z]([^.]+)$": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/extension"
        }
      },
      "properties": {
        "attachments": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/attachments"
        },
        "author": {
          "description": "Use the \"authors\" key instead, even when there is only one author. Existing feeds can include both \"author\" and \"authors\" for compatibility with existing feed readers. Feed readers should always prefer `authors` if present.",
          "deprecated": true,
          "allOf": [
            {
              "$ref": "https://json.schemastore.org/feed-1#/definitions/author"
            }
          ]
        },
        "authors": {
          "type": "array",
          "items": {
            "$ref": "https://json.schemastore.org/feed-1#/definitions/author"
          }
        },
        "banner_image": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/banner_image"
        },
        "content_html": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/content_html"
        },
        "content_text": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/content_text"
        },
        "date_modified": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/date_modified"
        },
        "date_published": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/date_published"
        },
        "external_url": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/external_url"
        },
        "id": {
          "description": "Is unique for that item for that feed over time. If an item is ever updated, the id should be unchanged. New items should never use a previously-used id. Ideally, the id is the full URL of the resource described by the item, since URLs make great unique identifiers.",
          "type": ["string"]
        },
        "image": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/image"
        },
        "language": {
          "description": "The language for this item, using the same format as the top-level \"language\" field. The value can be different than the primary language for the feed when a specific item is written in a different language than other items in the feed.",
          "type": "string"
        },
        "summary": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/summary"
        },
        "tags": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/tags"
        },
        "title": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/title"
        },
        "url": {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/item/properties/url"
        }
      }
    }
  },
  "id": "https://json.schemastore.org/feed.json",
  "patternProperties": {
    "^_[a-zA-Z]([^.]+)$": {
      "$ref": "https://json.schemastore.org/feed-1#/definitions/extension"
    }
  },
  "properties": {
    "author": {
      "deprecated": true,
      "description": "Use the \"authors\" key instead, even when there is only one author. Existing feeds can include both \"author\" and \"authors\" for compatibility with existing feed readers. Feed readers should always prefer `authors` if present.",
      "allOf": [
        {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/author"
        }
      ]
    },
    "authors": {
      "type": "array",
      "items": {
        "$ref": "https://json.schemastore.org/feed-1#/definitions/author"
      }
    },
    "description": {
      "$ref": "https://json.schemastore.org/feed-1#/properties/description"
    },
    "expired": {
      "$ref": "https://json.schemastore.org/feed-1#/properties/expired"
    },
    "favicon": {
      "$ref": "https://json.schemastore.org/feed-1#/properties/description"
    },
    "feed_url": {
      "$ref": "https://json.schemastore.org/feed-1#/properties/feed_url"
    },
    "home_page_url": {
      "$ref": "https://json.schemastore.org/feed-1#/properties/home_page_url"
    },
    "hubs": {
      "$ref": "https://json.schemastore.org/feed-1#/properties/hubs"
    },
    "icon": {
      "$ref": "https://json.schemastore.org/feed-1#/properties/icon"
    },
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/item"
      }
    },
    "language": {
      "description": "The primary language for the feed in the format specified in RFC 5646. The value is usually a 2-letter language tag from ISO 639-1, optionally followed by a region tag. (Examples: \"en\" or \"en-US\".)",
      "type": "string"
    },
    "next_url": {
      "$ref": "https://json.schemastore.org/feed-1#/properties/next_url"
    },
    "title": {
      "$ref": "https://json.schemastore.org/feed-1#/properties/title"
    },
    "user_comment": {
      "$ref": "https://json.schemastore.org/feed-1#/properties/user_comment"
    },
    "version": {
      "description": "The URL of the version of the format the feed uses. This should appear at the very top, though we recognize that not all JSON generators allow for ordering.",
      "anyOf": [
        {
          "enum": ["https://jsonfeed.org/version/1.1"]
        },
        {
          "$ref": "https://json.schemastore.org/feed-1#/definitions/uri"
        }
      ]
    }
  },
  "required": ["items", "title", "version"],
  "title": "JSON schema for the JSON Feed format",
  "type": "object"
}
