{
  "product": "Specification (reference)",
  "title": "Notification Service",
  "summary": "Deliver the right message on the right channel without becoming noise.",
  "category": "services",
  "entries": [
    {
      "path": [
        "AI",
        "Channels",
        "Email, SMS, push and in-app"
      ],
      "value": "",
      "status": "yes",
      "note": "one API across all"
    },
    {
      "path": [
        "AI",
        "Channels",
        "Channel fallback when the first fails"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Templates",
        "Named templates with variables per channel"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Templates",
        "Localisation by recipient locale"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Templates",
        "Preview and test send"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Routing",
        "Recipient preferences per category and channel"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Routing",
        "Quiet hours in the recipient time zone"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Routing",
        "Digest and batching instead of a burst"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Delivery",
        "Idempotency so a retry does not double-send"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Delivery",
        "Scheduled and time-zone-aware sends"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Delivery",
        "Rate limits per recipient and per category"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Compliance",
        "Unsubscribe honoured across every channel"
      ],
      "value": "",
      "status": "yes",
      "note": "and immediately"
    },
    {
      "path": [
        "AI",
        "Compliance",
        "Suppression list for bounces and complaints"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Compliance",
        "Transactional and marketing kept separate"
      ],
      "value": "",
      "status": "yes",
      "note": "legally distinct"
    },
    {
      "path": [
        "AI",
        "Observability",
        "Per-message status: queued, sent, delivered, opened, failed"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Observability",
        "Failure reasons surfaced, not just counts"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Console",
        "Message log with filters and resend"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Console",
        "Template editor with live preview"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    }
  ]
}
