{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "revision": {
      "type": "number",
      "description": "Optimistic concurrency revision; supply it as expectedRevision on the next write."
    },
    "email": {
      "type": "string"
    },
    "enabled": {
      "type": "boolean"
    },
    "frequency": {
      "type": "string",
      "enum": [
        "immediate",
        "daily",
        "weekly"
      ]
    },
    "timezone": {
      "type": "string"
    },
    "hour": {
      "type": "number"
    },
    "weekday": {
      "type": "number"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "projectIds": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "suppressedReason": {
      "anyOf": [
        {
          "type": "string",
          "description": "Provider bounce, complaint or suppression reason that stopped delivery; null when the recipient is deliverable."
        },
        {
          "type": "null"
        }
      ],
      "description": "Provider bounce, complaint or suppression reason that stopped delivery; null when the recipient is deliverable."
    },
    "nextAt": {
      "anyOf": [
        {
          "type": "string",
          "description": "UTC timestamp of the next scheduled summary; null while notifications are disabled."
        },
        {
          "type": "null"
        }
      ],
      "description": "UTC timestamp of the next scheduled summary; null while notifications are disabled."
    },
    "deliveryAvailable": {
      "type": "boolean",
      "description": "True only when this environment has email delivery configured; saved preferences never imply delivery."
    }
  },
  "required": [
    "revision",
    "email",
    "enabled",
    "frequency",
    "timezone",
    "hour",
    "weekday",
    "categories",
    "projectIds",
    "suppressedReason",
    "nextAt",
    "deliveryAvailable"
  ],
  "additionalProperties": {}
}
