{
  "id": "type-h30",
  "revision": "e1afe2396bbfc59bc0d3621b464622e0984819e1b6dc92ccf6992fd258fca51e",
  "regions": [
    {
      "id": "conversation-feature",
      "label": "Conversation feature",
      "parent": null
    },
    {
      "id": "application",
      "label": "Application",
      "parent": null
    },
    {
      "id": "boundary",
      "label": "Boundary",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "repository",
      "label": "Internal message repository",
      "kind": "N25",
      "region": "conversation-feature",
      "ports": [
        {
          "id": "state",
          "profile": "P08",
          "contract": "ConversationMessageStateV1",
          "polarity": "Offer"
        },
        {
          "id": "send",
          "profile": "P02",
          "contract": "SendMessageRequestResponseV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "feature",
      "label": "Conversation boundary",
      "kind": "N10",
      "region": "conversation-feature",
      "ports": [
        {
          "id": "messages",
          "profile": "P08",
          "contract": "ConversationMessageStateV1",
          "polarity": "Require"
        },
        {
          "id": "parentState",
          "profile": "P08",
          "contract": "ConversationMessageStateV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "parent",
      "label": "App composition",
      "kind": "N10",
      "region": "application",
      "ports": [
        {
          "id": "messages",
          "profile": "P08",
          "contract": "ConversationMessageStateV1",
          "polarity": "Require"
        },
        {
          "id": "state",
          "profile": "P08",
          "contract": "ConversationMessageStateV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "ui",
      "label": "Chat Surface",
      "kind": "N11",
      "region": "application",
      "ports": [
        {
          "id": "state",
          "profile": "P08",
          "contract": "ConversationMessageStateV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "http",
      "label": "Messaging HTTP adapter",
      "kind": "N15",
      "region": "boundary",
      "ports": [
        {
          "id": "send",
          "profile": "P02",
          "contract": "SendMessageRequestResponseV1",
          "polarity": "Offer"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "export-state",
      "kind": "H30",
      "incidences": [
        {
          "node": "repository",
          "port": "state",
          "role": "export",
          "ordinal": 0
        },
        {
          "node": "feature",
          "port": "messages",
          "role": "import",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "parent",
      "kind": "H30",
      "incidences": [
        {
          "node": "feature",
          "port": "parentState",
          "role": "export",
          "ordinal": 0
        },
        {
          "node": "parent",
          "port": "messages",
          "role": "import",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "render",
      "kind": "H02",
      "incidences": [
        {
          "node": "parent",
          "port": "state",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "ui",
          "port": "state",
          "role": "target",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "send",
      "kind": "H01",
      "incidences": [
        {
          "node": "http",
          "port": "send",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "repository",
          "port": "send",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    }
  ]
}
