{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "description": "Revision last read by the caller; mismatches reject concurrent updates."
    },
    "enabled": {
      "type": "boolean",
      "description": "The enabled value; allowed values and bounds are specified in this schema."
    },
    "email": {
      "type": "string",
      "maxLength": 254,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Email address to bind an invitation to; AgentLinkOps does not send the invitation."
    },
    "frequency": {
      "type": "string",
      "enum": [
        "immediate",
        "daily",
        "weekly"
      ],
      "description": "The frequency value; allowed values and bounds are specified in this schema."
    },
    "timezone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The timezone value; allowed values and bounds are specified in this schema."
    },
    "hour": {
      "type": "integer",
      "minimum": 0,
      "maximum": 23,
      "description": "The hour value; allowed values and bounds are specified in this schema."
    },
    "weekday": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6,
      "description": "The weekday value; allowed values and bounds are specified in this schema."
    },
    "categories": {
      "minItems": 1,
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "placements",
          "destinations",
          "competitors",
          "workspace"
        ]
      },
      "description": "The categories value; allowed values and bounds are specified in this schema."
    },
    "projectIds": {
      "anyOf": [
        {
          "minItems": 1,
          "maxItems": 100,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          }
        },
        {
          "type": "null"
        }
      ],
      "description": "Accessible project IDs. Where nullable, null grants all projects."
    }
  },
  "required": [
    "expectedRevision",
    "enabled",
    "email",
    "frequency",
    "timezone",
    "hour",
    "weekday",
    "categories",
    "projectIds"
  ],
  "additionalProperties": false
}
