{
  "id": "type-h13",
  "revision": "cad8224462a6e254ee5fdff5a2b98e5ab480f59a8c03c8f75ccba6476b48c645",
  "regions": [
    {
      "id": "zone-a",
      "label": "Zone A",
      "parent": null
    },
    {
      "id": "zone-b",
      "label": "Zone B",
      "parent": null
    },
    {
      "id": "zone-c",
      "label": "Zone C",
      "parent": null
    },
    {
      "id": "server",
      "label": "Server",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "a",
      "label": "Replica voter A",
      "kind": "N21",
      "region": "zone-a",
      "ports": [
        {
          "id": "vote",
          "profile": "P13",
          "contract": "TermBoundWriteAcknowledgementV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "b",
      "label": "Replica voter B",
      "kind": "N21",
      "region": "zone-b",
      "ports": [
        {
          "id": "vote",
          "profile": "P13",
          "contract": "TermBoundWriteAcknowledgementV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "c",
      "label": "Replica voter C",
      "kind": "N21",
      "region": "zone-c",
      "ports": [
        {
          "id": "vote",
          "profile": "P13",
          "contract": "TermBoundWriteAcknowledgementV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "coordinator",
      "label": "Write quorum coordinator",
      "kind": "N05",
      "region": "server",
      "ports": [
        {
          "id": "votes",
          "profile": "P13",
          "contract": "TermBoundWriteAcknowledgementV1",
          "polarity": "Neutral"
        },
        {
          "id": "accepted",
          "profile": "P24",
          "contract": "QuorumWriteReceiptV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "receipt",
      "label": "Accepted write receipt",
      "kind": "N37",
      "region": "server",
      "ports": [
        {
          "id": "record",
          "profile": "P24",
          "contract": "QuorumWriteReceiptV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "quorum",
      "kind": "H13",
      "incidences": [
        {
          "node": "a",
          "port": "vote",
          "role": "voter",
          "ordinal": 0
        },
        {
          "node": "b",
          "port": "vote",
          "role": "voter",
          "ordinal": 1
        },
        {
          "node": "c",
          "port": "vote",
          "role": "voter",
          "ordinal": 2
        },
        {
          "node": "coordinator",
          "port": "votes",
          "role": "coordinator",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "receipt",
      "kind": "H27",
      "incidences": [
        {
          "node": "coordinator",
          "port": "accepted",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "receipt",
          "port": "record",
          "role": "target",
          "ordinal": 0
        }
      ]
    }
  ]
}
