{
  "description": "This file is auto-generated by scripts/prep. Do not edit manually.",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "$schema": { "type": "string" },
    "data": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "title": {
          "type": "object",
          "propertyNames": { "type": "string", "pattern": "^[a-z]{3}$" },
          "additionalProperties": { "type": "string" }
        },
        "body": {
          "type": "object",
          "propertyNames": { "type": "string", "pattern": "^[a-z]{3}$" },
          "additionalProperties": { "type": "string" }
        },
        "actionUrl": {
          "type": "object",
          "propertyNames": { "type": "string", "pattern": "^[a-z]{3}$" },
          "additionalProperties": {
            "type": "string",
            "pattern": "^(https:\\/\\/|waha:\\/\\/).+$"
          },
          "description": "Where to navigate to when a user clicks the CTA, keyed by language id. The user's app interface language URL is used at send time, falling back to English. Include at least an 'eng' key. If a waha web url is given, the link will navigate to a screen in the app. If not, it will open an in-app browser.\n@example\n// Would navigate to the English DM course in the app.\n{ eng: 'https://web.waha.app/set?set-id=03.009&meet-language=eng' }\n@example\n// Same form, localized per language.\n{ eng: 'https://forms.example.com/eng', spa: 'https://forms.example.com/spa' }"
        },
        "countriesToNotSendTo": {
          "type": "array",
          "items": { "type": "string" },
          "description": "Users in any country EXCEPT these will receive the notification. Cannot be defined with `countriesToSendTo`."
        },
        "countriesToSendTo": {
          "type": "array",
          "items": { "type": "string" },
          "description": "Only users who have logged activity in the specified countries will receive the notification. To send to users in all countries, don't include this key. Cannot be defined with `countriesToNotSendTo`."
        },
        "faithJourney": {
          "type": "string",
          "enum": ["all", "seekers", "believers"],
          "description": "Only users who match the specified faith journey status will receive the notification. To send to all users regardless of faith journey, use \"all\"."
        },
        "imageUrl": { "type": "string", "pattern": "^https:\\/\\/.+$" },
        "meetLanguages": {
          "anyOf": [
            { "type": "string", "const": "all" },
            { "type": "array", "items": { "type": "string" } }
          ],
          "description": "Only users who have the specified meet languages as favorites will receive the notification. To send to users across all meet languages, use \"all\"."
        },
        "minCompletions": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "pushBody": {
          "type": "object",
          "propertyNames": { "type": "string", "pattern": "^[a-z]{3}$" },
          "additionalProperties": { "type": "string" }
        },
        "pushTitle": {
          "type": "object",
          "propertyNames": { "type": "string", "pattern": "^[a-z]{3}$" },
          "additionalProperties": { "type": "string" }
        },
        "pushTokens": {
          "type": "array",
          "items": { "type": "string" },
          "description": "List of push tokens to send the notification to. If not provided, the notification will be sent to all users who match the other criteria. If provided, the other filters will be ignored."
        },
        "verified": {
          "type": "array",
          "items": { "type": "string" },
          "description": "List of languages that have had their translation verified. These languages will NOT show the 'translated by AI' message in the app. English should never be included, as its translations are always verified."
        }
      },
      "required": ["title", "body", "verified"],
      "additionalProperties": false
    }
  },
  "required": ["$schema", "data"]
}
