{
  "id": "type-h01",
  "revision": "724e156412f689cf53dc84e114a2c68781ccf4ede7cb1d21220e022086f56d32",
  "regions": [
    {
      "id": "mobile",
      "label": "Mobile",
      "parent": null
    },
    {
      "id": "server",
      "label": "Server",
      "parent": null
    },
    {
      "id": "shadow",
      "label": "Shadow",
      "parent": null
    },
    {
      "id": "control-plane",
      "label": "Control plane",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "repo",
      "label": "Profile repository",
      "kind": "N25",
      "region": "mobile",
      "ports": [
        {
          "id": "read",
          "profile": "P02",
          "contract": "ProfileReadRequestResponseV1",
          "polarity": "Require"
        },
        {
          "id": "state",
          "profile": "P08",
          "contract": "ProfileViewStateV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "real",
      "label": "Profile service implementation",
      "kind": "N19",
      "region": "server",
      "ports": [
        {
          "id": "read",
          "profile": "P02",
          "contract": "ProfileReadRequestResponseV1",
          "polarity": "Offer"
        },
        {
          "id": "offer",
          "profile": "P19",
          "contract": "ProfileAdapterCapabilityV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "mock",
      "label": "Shadow profile adapter",
      "kind": "N36",
      "region": "shadow",
      "ports": [
        {
          "id": "offer",
          "profile": "P19",
          "contract": "ProfileAdapterCapabilityV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "resolve",
      "label": "Activation binding decision",
      "kind": "N03",
      "region": "control-plane",
      "ports": [
        {
          "id": "required",
          "profile": "P19",
          "contract": "ProfileAdapterCapabilityV1",
          "polarity": "Require"
        },
        {
          "id": "realRequired",
          "profile": "P19",
          "contract": "ProfileAdapterCapabilityV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "ui",
      "label": "Profile Surface",
      "kind": "N11",
      "region": "mobile",
      "ports": [
        {
          "id": "state",
          "profile": "P08",
          "contract": "ProfileViewStateV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "binding",
      "kind": "H01",
      "incidences": [
        {
          "node": "real",
          "port": "read",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "repo",
          "port": "read",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "mock-offer",
      "kind": "H24",
      "incidences": [
        {
          "node": "mock",
          "port": "offer",
          "role": "offer",
          "ordinal": 0
        },
        {
          "node": "resolve",
          "port": "required",
          "role": "requirement",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "real-offer",
      "kind": "H24",
      "incidences": [
        {
          "node": "real",
          "port": "offer",
          "role": "offer",
          "ordinal": 0
        },
        {
          "node": "resolve",
          "port": "realRequired",
          "role": "requirement",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "render",
      "kind": "H02",
      "incidences": [
        {
          "node": "repo",
          "port": "state",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "ui",
          "port": "state",
          "role": "target",
          "ordinal": 0
        }
      ]
    }
  ]
}
