{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Identifier of the project returned by its create or list operation."
    },
    "watches": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "anyOf": [
          {},
          {
            "type": "object",
            "properties": {
              "sourceUrl": {
                "type": "string",
                "format": "uri"
              },
              "targetUrl": {
                "type": "string",
                "format": "uri"
              },
              "targetScope": {
                "type": "string",
                "enum": [
                  "exact",
                  "domain",
                  "subdomain",
                  "path"
                ]
              },
              "cadenceSeconds": {
                "type": "integer",
                "minimum": 3600,
                "maximum": 2592000
              },
              "expectedAnchor": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 1000
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "expectedRel": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "localReference": {
                "type": "string",
                "maxLength": 200
              }
            },
            "required": [
              "sourceUrl",
              "targetUrl"
            ],
            "additionalProperties": false
          }
        ]
      },
      "description": "Rows use sourceUrl and targetUrl, plus optional targetScope, cadenceSeconds, expectedAnchor, expectedRel and localReference. Each invalid row returns an error at its position; valid rows continue."
    }
  },
  "required": [
    "projectId",
    "watches"
  ],
  "additionalProperties": false
}
