{
  "id": "type-p15",
  "revision": "d86af91e7a01b4fbf1aa4aae759a953cb13ec9c6efa45fdd8e3be7d4c07e7ad1",
  "regions": [
    {
      "id": "server",
      "label": "Server",
      "parent": null
    },
    {
      "id": "external",
      "label": "External",
      "parent": null
    },
    {
      "id": "operations",
      "label": "Operations",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "schedule",
      "label": "Delivery retry state",
      "kind": "N05",
      "region": "server",
      "ports": [
        {
          "id": "next",
          "profile": "P01",
          "contract": "RetryDeadlineBudgetV1",
          "polarity": "Offer"
        },
        {
          "id": "tick",
          "profile": "P15",
          "contract": "RetryDeadlineCandidateV1",
          "polarity": "Require"
        },
        {
          "id": "send",
          "profile": "P02",
          "contract": "IdempotentDeliveryAttemptV1",
          "polarity": "Require"
        },
        {
          "id": "failed",
          "profile": "P24",
          "contract": "RetryExhaustedV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "clock",
      "label": "Retry timer",
      "kind": "N09",
      "region": "server",
      "ports": [
        {
          "id": "schedule",
          "profile": "P01",
          "contract": "RetryDeadlineBudgetV1",
          "polarity": "Require"
        },
        {
          "id": "tick",
          "profile": "P15",
          "contract": "RetryDeadlineCandidateV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "send",
      "label": "Delivery adapter",
      "kind": "N19",
      "region": "external",
      "ports": [
        {
          "id": "send",
          "profile": "P02",
          "contract": "IdempotentDeliveryAttemptV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "failed",
      "label": "Exhausted retry evidence",
      "kind": "N37",
      "region": "operations",
      "ports": [
        {
          "id": "record",
          "profile": "P24",
          "contract": "RetryExhaustedV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "schedule",
      "kind": "H02",
      "incidences": [
        {
          "node": "schedule",
          "port": "next",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "clock",
          "port": "schedule",
          "role": "target",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "tick",
      "kind": "H04",
      "incidences": [
        {
          "node": "clock",
          "port": "tick",
          "role": "publisher",
          "ordinal": 0
        },
        {
          "node": "schedule",
          "port": "tick",
          "role": "subscriber",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "invoke",
      "kind": "H05",
      "incidences": [
        {
          "node": "schedule",
          "port": "send",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "send",
          "port": "send",
          "role": "callee",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "failure",
      "kind": "H27",
      "incidences": [
        {
          "node": "schedule",
          "port": "failed",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "failed",
          "port": "record",
          "role": "target",
          "ordinal": 0
        }
      ]
    }
  ]
}
