{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/google-chrome-related-website-sets/latest.json",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/GoogleChrome/related-website-sets/main/SCHEMA.json",
    "sourceSha256": "40958c5c8b1d02df9fe6f1637a91d00cf4f181ae8be6e8b4fcd78ecfc47d681d",
    "fileMatch": [
      "**/.well-known/first-party-set.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "sets": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "object",
        "anyOf": [
          {
            "required": [
              "associatedSites"
            ]
          },
          {
            "required": [
              "serviceSites"
            ]
          },
          {
            "required": [
              "ccTLDs"
            ]
          }
        ],
        "properties": {
          "ccTLDs": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "contact": {
            "type": "string"
          },
          "primary": {
            "type": "string"
          },
          "associatedSites": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "serviceSites": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "rationaleBySite": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "required": [
          "primary",
          "contact"
        ],
        "dependentRequired": {
          "associatedSites": [
            "rationaleBySite"
          ],
          "serviceSites": [
            "rationaleBySite"
          ]
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
