{
  "id": "type-n09",
  "revision": "f044d54c3d08a04ce32345a8aad4864334c6b0f751f5b927ba7560d5febdc548",
  "regions": [
    {
      "id": "server",
      "label": "Server",
      "parent": null
    },
    {
      "id": "storage",
      "label": "Storage",
      "parent": null
    },
    {
      "id": "external",
      "label": "External",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "timer",
      "label": "Reservation deadline clock",
      "kind": "N09",
      "region": "server",
      "ports": [
        {
          "id": "expired",
          "profile": "P15",
          "contract": "ReservationExpiryCandidateV1",
          "polarity": "Offer"
        },
        {
          "id": "schedule",
          "profile": "P01",
          "contract": "ReservationDeadlineV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "reservation",
      "label": "Seat reservation authority",
      "kind": "N21",
      "region": "storage",
      "ports": [
        {
          "id": "expire",
          "profile": "P15",
          "contract": "ReservationExpiryCandidateV1",
          "polarity": "Require"
        },
        {
          "id": "paid",
          "profile": "P09",
          "contract": "MarkReservationPaidAtVersionV1",
          "polarity": "Offer"
        },
        {
          "id": "released",
          "profile": "P04",
          "contract": "ReservationReleasedV1",
          "polarity": "Offer"
        },
        {
          "id": "deadline",
          "profile": "P01",
          "contract": "ReservationDeadlineV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "payment",
      "label": "Payment completion",
      "kind": "N02",
      "region": "external",
      "ports": [
        {
          "id": "paid",
          "profile": "P09",
          "contract": "MarkReservationPaidAtVersionV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "notify",
      "label": "Availability notification",
      "kind": "N02",
      "region": "server",
      "ports": [
        {
          "id": "released",
          "profile": "P04",
          "contract": "ReservationReleasedV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "expiry",
      "kind": "H04",
      "incidences": [
        {
          "node": "timer",
          "port": "expired",
          "role": "publisher",
          "ordinal": 0
        },
        {
          "node": "reservation",
          "port": "expire",
          "role": "subscriber",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "paid",
      "kind": "H05",
      "incidences": [
        {
          "node": "payment",
          "port": "paid",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "reservation",
          "port": "paid",
          "role": "callee",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "released",
      "kind": "H04",
      "incidences": [
        {
          "node": "reservation",
          "port": "released",
          "role": "publisher",
          "ordinal": 0
        },
        {
          "node": "notify",
          "port": "released",
          "role": "subscriber",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "schedule",
      "kind": "H02",
      "incidences": [
        {
          "node": "reservation",
          "port": "deadline",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "timer",
          "port": "schedule",
          "role": "target",
          "ordinal": 0
        }
      ]
    }
  ]
}
