{
  "id": "type-h09",
  "revision": "8e6a0638b8a9eeafad036c8d079aee6b5162b2cbbe241742cb423cffa6225f24",
  "regions": [
    {
      "id": "server",
      "label": "Server",
      "parent": null
    },
    {
      "id": "common-logic",
      "label": "Common logic",
      "parent": null
    },
    {
      "id": "mobile",
      "label": "Mobile",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "profile",
      "label": "Profile read",
      "kind": "N19",
      "region": "server",
      "ports": [
        {
          "id": "part",
          "profile": "P01",
          "contract": "RequiredProfileHeaderPartsV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "relationship",
      "label": "Relationship read",
      "kind": "N19",
      "region": "server",
      "ports": [
        {
          "id": "part",
          "profile": "P01",
          "contract": "RequiredProfileHeaderPartsV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "recommend",
      "label": "Optional recommendations",
      "kind": "N19",
      "region": "server",
      "ports": [
        {
          "id": "state",
          "profile": "P08",
          "contract": "RecommendationPanelV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "join",
      "label": "Profile header assembly",
      "kind": "N01",
      "region": "common-logic",
      "ports": [
        {
          "id": "parts",
          "profile": "P01",
          "contract": "RequiredProfileHeaderPartsV1",
          "polarity": "Require"
        },
        {
          "id": "state",
          "profile": "P08",
          "contract": "ProfileHeaderReadyV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "ui",
      "label": "Profile header Surface",
      "kind": "N11",
      "region": "mobile",
      "ports": [
        {
          "id": "header",
          "profile": "P08",
          "contract": "ProfileHeaderReadyV1",
          "polarity": "Require"
        },
        {
          "id": "recommendation",
          "profile": "P08",
          "contract": "RecommendationPanelV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "join",
      "kind": "H09",
      "incidences": [
        {
          "node": "profile",
          "port": "part",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "relationship",
          "port": "part",
          "role": "source",
          "ordinal": 1
        },
        {
          "node": "join",
          "port": "parts",
          "role": "result",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "header",
      "kind": "H02",
      "incidences": [
        {
          "node": "join",
          "port": "state",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "ui",
          "port": "header",
          "role": "target",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "optional",
      "kind": "H02",
      "incidences": [
        {
          "node": "recommend",
          "port": "state",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "ui",
          "port": "recommendation",
          "role": "target",
          "ordinal": 0
        }
      ]
    }
  ]
}
