{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://hieropedia.org/schemas/hmif-policy-record-1.1.schema.json",
  "title": "HMIF 1.1 policy and site-information directory descriptor",
  "type": "object",
  "required": [
    "@context",
    "@type",
    "hmifVersion",
    "pageKey",
    "name",
    "description",
    "sourceLanguage",
    "humanEditions"
  ],
  "additionalProperties": false,
  "properties": {
    "@context": {
      "const": "https://hieropedia.org/vocab/context.jsonld"
    },
    "@type": {
      "const": "HieropediaPolicyRecord"
    },
    "hmifVersion": {
      "const": "1.1"
    },
    "pageKey": {
      "enum": [
        "methodology",
        "submit",
        "about",
        "editorial-charter",
        "corrections",
        "conflicts",
        "deprecation",
        "continuity",
        "site-changelog",
        "legal",
        "privacy"
      ]
    },
    "name": {
      "type": "string",
      "pattern": "\\S"
    },
    "description": {
      "type": "string",
      "pattern": "\\S"
    },
    "sourceLanguage": {
      "const": "en"
    },
    "humanEditions": {
      "type": "array",
      "minItems": 1,
      "maxItems": 6,
      "items": {
        "type": "object",
        "required": [
          "language",
          "url"
        ],
        "additionalProperties": false,
        "properties": {
          "language": {
            "enum": [
              "en",
              "es",
              "fr",
              "it",
              "ru",
              "zh-Hans"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://hieropedia\\.org/"
          }
        }
      },
      "allOf": [
        {
          "contains": {
            "type": "object",
            "required": [
              "language"
            ],
            "properties": {
              "language": {
                "const": "en"
              }
            }
          },
          "minContains": 1,
          "maxContains": 1
        },
        {
          "contains": {
            "type": "object",
            "required": [
              "language"
            ],
            "properties": {
              "language": {
                "const": "es"
              }
            }
          },
          "minContains": 0,
          "maxContains": 1
        },
        {
          "contains": {
            "type": "object",
            "required": [
              "language"
            ],
            "properties": {
              "language": {
                "const": "fr"
              }
            }
          },
          "minContains": 0,
          "maxContains": 1
        },
        {
          "contains": {
            "type": "object",
            "required": [
              "language"
            ],
            "properties": {
              "language": {
                "const": "it"
              }
            }
          },
          "minContains": 0,
          "maxContains": 1
        },
        {
          "contains": {
            "type": "object",
            "required": [
              "language"
            ],
            "properties": {
              "language": {
                "const": "ru"
              }
            }
          },
          "minContains": 0,
          "maxContains": 1
        },
        {
          "contains": {
            "type": "object",
            "required": [
              "language"
            ],
            "properties": {
              "language": {
                "const": "zh-Hans"
              }
            }
          },
          "minContains": 0,
          "maxContains": 1
        }
      ]
    }
  }
}
