{
  "id": "type-h29",
  "revision": "41e7375f25071b20a532f12e36e7a193d804c19d5df226062d2c26d961b19315",
  "regions": [
    {
      "id": "delivery",
      "label": "Delivery",
      "parent": null
    },
    {
      "id": "control-plane",
      "label": "Control plane",
      "parent": null
    },
    {
      "id": "runtime",
      "label": "Runtime",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "client",
      "label": "Candidate client revision",
      "kind": "N35",
      "region": "delivery",
      "ports": [
        {
          "id": "ref",
          "profile": "P23",
          "contract": "ReleaseCohortRefsV1",
          "polarity": "Neutral"
        },
        {
          "id": "evidence",
          "profile": "P24",
          "contract": "CohortCompatibilityEvidenceV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "server",
      "label": "Candidate server revision",
      "kind": "N35",
      "region": "delivery",
      "ports": [
        {
          "id": "ref",
          "profile": "P23",
          "contract": "ReleaseCohortRefsV1",
          "polarity": "Neutral"
        },
        {
          "id": "evidence",
          "profile": "P24",
          "contract": "CohortCompatibilityEvidenceV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "schema",
      "label": "Candidate state schema",
      "kind": "N31",
      "region": "delivery",
      "ports": [
        {
          "id": "ref",
          "profile": "P23",
          "contract": "ReleaseCohortRefsV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "admit",
      "label": "Cohort admission",
      "kind": "N03",
      "region": "control-plane",
      "ports": [
        {
          "id": "cohort",
          "profile": "P23",
          "contract": "ReleaseCohortRefsV1",
          "polarity": "Neutral"
        },
        {
          "id": "compatibility",
          "profile": "P24",
          "contract": "CohortCompatibilityEvidenceV1",
          "polarity": "Require"
        },
        {
          "id": "switch",
          "profile": "P09",
          "contract": "AdmittedCohortRouteEpochV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "route",
      "label": "Traffic route authority",
      "kind": "N21",
      "region": "runtime",
      "ports": [
        {
          "id": "switch",
          "profile": "P09",
          "contract": "AdmittedCohortRouteEpochV1",
          "polarity": "Offer"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "cohort",
      "kind": "H29",
      "incidences": [
        {
          "node": "client",
          "port": "ref",
          "role": "member",
          "ordinal": 0
        },
        {
          "node": "server",
          "port": "ref",
          "role": "member",
          "ordinal": 1
        },
        {
          "node": "schema",
          "port": "ref",
          "role": "member",
          "ordinal": 2
        },
        {
          "node": "admit",
          "port": "cohort",
          "role": "coordinator",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "evidence",
      "kind": "H28",
      "incidences": [
        {
          "node": "client",
          "port": "evidence",
          "role": "evidence",
          "ordinal": 0
        },
        {
          "node": "server",
          "port": "evidence",
          "role": "evidence",
          "ordinal": 1
        },
        {
          "node": "admit",
          "port": "compatibility",
          "role": "claim",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "switch",
      "kind": "H05",
      "incidences": [
        {
          "node": "admit",
          "port": "switch",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "route",
          "port": "switch",
          "role": "callee",
          "ordinal": 0
        }
      ]
    }
  ]
}
