{
  "id": "type-n10",
  "revision": "2760287d5cb496cec5646040d0c63494598ae6afce9cf13bd87afbdd1c494796",
  "regions": [
    {
      "id": "shared-feature",
      "label": "Shared feature",
      "parent": null
    },
    {
      "id": "mobile",
      "label": "Mobile",
      "parent": null
    },
    {
      "id": "desktop",
      "label": "Desktop",
      "parent": null
    },
    {
      "id": "server",
      "label": "Server",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "feature",
      "label": "Conversation blueprint",
      "kind": "N10",
      "region": "shared-feature",
      "ports": [
        {
          "id": "mobile",
          "profile": "P21",
          "contract": "ConversationInstanceLifecycleV1",
          "polarity": "Neutral"
        },
        {
          "id": "desktop",
          "profile": "P21",
          "contract": "ConversationInstanceLifecycleV1",
          "polarity": "Neutral"
        },
        {
          "id": "resources",
          "profile": "P21",
          "contract": "ConversationResourceScopeV1",
          "polarity": "Offer"
        },
        {
          "id": "send",
          "profile": "P02",
          "contract": "SendMessageRequestResponseV1",
          "polarity": "Require"
        },
        {
          "id": "messages",
          "profile": "P08",
          "contract": "ConversationMessagesStateV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "repo",
      "label": "Message repository",
      "kind": "N21",
      "region": "shared-feature",
      "ports": [
        {
          "id": "scope",
          "profile": "P21",
          "contract": "ConversationResourceScopeV1",
          "polarity": "Require"
        },
        {
          "id": "messages",
          "profile": "P08",
          "contract": "ConversationMessagesStateV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "mobile",
      "label": "Mobile host",
      "kind": "N27",
      "region": "mobile",
      "ports": [
        {
          "id": "conversation",
          "profile": "P21",
          "contract": "ConversationInstanceLifecycleV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "desktop",
      "label": "Desktop host",
      "kind": "N27",
      "region": "desktop",
      "ports": [
        {
          "id": "conversation",
          "profile": "P21",
          "contract": "ConversationInstanceLifecycleV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "service",
      "label": "Messaging service",
      "kind": "N19",
      "region": "server",
      "ports": [
        {
          "id": "send",
          "profile": "P02",
          "contract": "SendMessageRequestResponseV1",
          "polarity": "Offer"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "mobile-instance",
      "kind": "H20",
      "incidences": [
        {
          "node": "feature",
          "port": "mobile",
          "role": "factory",
          "ordinal": 0
        },
        {
          "node": "mobile",
          "port": "conversation",
          "role": "instance",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "desktop-instance",
      "kind": "H20",
      "incidences": [
        {
          "node": "feature",
          "port": "desktop",
          "role": "factory",
          "ordinal": 0
        },
        {
          "node": "desktop",
          "port": "conversation",
          "role": "instance",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "repository",
      "kind": "H19",
      "incidences": [
        {
          "node": "feature",
          "port": "resources",
          "role": "owner",
          "ordinal": 0
        },
        {
          "node": "repo",
          "port": "scope",
          "role": "resource",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "send",
      "kind": "H05",
      "incidences": [
        {
          "node": "feature",
          "port": "send",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "service",
          "port": "send",
          "role": "callee",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "export",
      "kind": "H30",
      "incidences": [
        {
          "node": "repo",
          "port": "messages",
          "role": "export",
          "ordinal": 0
        },
        {
          "node": "feature",
          "port": "messages",
          "role": "import",
          "ordinal": 0
        }
      ]
    }
  ]
}
