{
  "schemaVersion": 2,
  "product": "AeroDue Alerts",
  "reviewedAt": "2026-10-10",
  "scopes": {
    "flight": {
      "enabled": true,
      "monitoringWindowHours": 48,
      "requires": [
        "passenger-facing flight number",
        "resolved ICAO callsign"
      ]
    },
    "airport": {
      "enabled": true
    },
    "route": {
      "enabled": true,
      "requires": [
        "origin airport",
        "destination airport"
      ]
    },
    "country": {
      "enabled": true
    }
  },
  "signals": [
    {
      "id": "severe-delay",
      "enabled": true,
      "threshold": "60+ minutes source-backed schedule difference",
      "renotify": "only after an additional 30-minute deterioration"
    },
    {
      "id": "cancellation",
      "enabled": true,
      "source": "connected flight-information provider status"
    },
    {
      "id": "diversion",
      "enabled": true,
      "basis": "source destination changes from the baseline arrival airport"
    },
    {
      "id": "airport-pressure",
      "enabled": true,
      "threshold": "Airport Health escalates to High or Severe"
    },
    {
      "id": "weather-escalation",
      "enabled": true,
      "threshold": "Airport Health weather escalates to operational-caution or significant"
    },
    {
      "id": "airspace-risk",
      "enabled": true,
      "basis": "new source-backed EASA CZIB context; country/airspace context is not presented as proof the airport or flight is affected"
    },
    {
      "id": "gate",
      "enabled": true,
      "basis": "departure or arrival gate changes or becomes reliably available from the connected flight-information source"
    },
    {
      "id": "source-backed-disruption",
      "enabled": true,
      "basis": "new matching AeroDue disruption event or current advisory"
    }
  ],
  "delivery": {
    "channel": "email",
    "provider": "Resend",
    "requiresConfirmation": true,
    "deduplicated": true,
    "cadence": "every 15 minutes",
    "sender": "AeroDue Alerts <alerts@aerodue.com>",
    "cancelLinkEveryEmail": true,
    "atomicReservationBeforeSend": true,
    "providerIdempotency": true,
    "maximumAttempts": 5,
    "retryWindowHours": 22,
    "providerIdempotencyLifetimeHours": 24,
    "pendingDeliveryDoesNotAdvanceBaseline": true
  },
  "boundaries": {
    "meaningfulChangesOnly": true,
    "noMakeOrMissGuarantee": true,
    "legalEntitlementDecision": false,
    "noSyntheticFlightImpact": true,
    "failClosedWhenSourceUnavailable": true
  }
}
