{
  "id": "type-n31",
  "revision": "1cb04023d4d6d1b83c7b2854b75661fcf2fd9c317e25b282257694566c2178ae",
  "regions": [
    {
      "id": "build",
      "label": "Build",
      "parent": null
    },
    {
      "id": "delivery",
      "label": "Delivery",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "schema",
      "label": "Messaging contract schema",
      "kind": "N31",
      "region": "build",
      "ports": [
        {
          "id": "old",
          "profile": "P23",
          "contract": "MessagingSchemaDigestV1",
          "polarity": "Offer"
        },
        {
          "id": "next",
          "profile": "P23",
          "contract": "MessagingSchemaDigestV2",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "old",
      "label": "Supported mobile decoder",
      "kind": "N34",
      "region": "build",
      "ports": [
        {
          "id": "schema",
          "profile": "P23",
          "contract": "MessagingSchemaDigestV1",
          "polarity": "Require"
        },
        {
          "id": "evidence",
          "profile": "P24",
          "contract": "MessagingCodecCompatibilityEvidenceV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "next",
      "label": "Candidate server encoder",
      "kind": "N34",
      "region": "build",
      "ports": [
        {
          "id": "schema",
          "profile": "P23",
          "contract": "MessagingSchemaDigestV2",
          "polarity": "Require"
        },
        {
          "id": "evidence",
          "profile": "P24",
          "contract": "MessagingCodecCompatibilityEvidenceV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "check",
      "label": "Compatibility check",
      "kind": "N01",
      "region": "build",
      "ports": [
        {
          "id": "evidence",
          "profile": "P24",
          "contract": "MessagingCodecCompatibilityEvidenceV1",
          "polarity": "Require"
        },
        {
          "id": "result",
          "profile": "P24",
          "contract": "SupportedClientCompatibilityClaimV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "release",
      "label": "Service release manifest",
      "kind": "N35",
      "region": "delivery",
      "ports": [
        {
          "id": "compatibility",
          "profile": "P24",
          "contract": "SupportedClientCompatibilityClaimV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "old",
      "kind": "H26",
      "incidences": [
        {
          "node": "schema",
          "port": "old",
          "role": "artifact",
          "ordinal": 0
        },
        {
          "node": "old",
          "port": "schema",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "next",
      "kind": "H26",
      "incidences": [
        {
          "node": "schema",
          "port": "next",
          "role": "artifact",
          "ordinal": 0
        },
        {
          "node": "next",
          "port": "schema",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "compatibility",
      "kind": "H09",
      "incidences": [
        {
          "node": "old",
          "port": "evidence",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "next",
          "port": "evidence",
          "role": "source",
          "ordinal": 1
        },
        {
          "node": "check",
          "port": "evidence",
          "role": "result",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "admit",
      "kind": "H28",
      "incidences": [
        {
          "node": "check",
          "port": "result",
          "role": "evidence",
          "ordinal": 0
        },
        {
          "node": "release",
          "port": "compatibility",
          "role": "claim",
          "ordinal": 0
        }
      ]
    }
  ]
}
