{
  "id": "type-n05",
  "revision": "8afef424feff92e96ce447f046f55b891f56b1020593b963baf76e0e777ec79c",
  "regions": [
    {
      "id": "clients",
      "label": "Clients",
      "parent": null
    },
    {
      "id": "server",
      "label": "Server",
      "parent": null
    },
    {
      "id": "storage",
      "label": "Storage",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "alice",
      "label": "Alice sender",
      "kind": "N11",
      "region": "clients",
      "ports": [
        {
          "id": "send",
          "profile": "P03",
          "contract": "ConversationCommandReceiptV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "bob",
      "label": "Bob sender",
      "kind": "N11",
      "region": "clients",
      "ports": [
        {
          "id": "send",
          "profile": "P03",
          "contract": "ConversationCommandReceiptV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "auth",
      "label": "Conversation access policy",
      "kind": "N33",
      "region": "server",
      "ports": [
        {
          "id": "grant",
          "profile": "P20",
          "contract": "ConversationWriteGrantV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "actor",
      "label": "Conversation actor",
      "kind": "N05",
      "region": "server",
      "ports": [
        {
          "id": "alice",
          "profile": "P03",
          "contract": "ConversationCommandReceiptV1",
          "polarity": "Offer"
        },
        {
          "id": "bob",
          "profile": "P03",
          "contract": "ConversationCommandReceiptV1",
          "polarity": "Offer"
        },
        {
          "id": "admission",
          "profile": "P20",
          "contract": "ConversationWriteGrantV1",
          "polarity": "Require"
        },
        {
          "id": "append",
          "profile": "P02",
          "contract": "AppendMessageAtRevisionV1",
          "polarity": "Require"
        },
        {
          "id": "committed",
          "profile": "P04",
          "contract": "CommittedMessageV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "journal",
      "label": "Message journal",
      "kind": "N21",
      "region": "storage",
      "ports": [
        {
          "id": "append",
          "profile": "P02",
          "contract": "AppendMessageAtRevisionV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "events",
      "label": "Conversation subscribers",
      "kind": "N24",
      "region": "server",
      "ports": [
        {
          "id": "committed",
          "profile": "P04",
          "contract": "CommittedMessageV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "alice-send",
      "kind": "H05",
      "incidences": [
        {
          "node": "alice",
          "port": "send",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "actor",
          "port": "alice",
          "role": "callee",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "bob-send",
      "kind": "H05",
      "incidences": [
        {
          "node": "bob",
          "port": "send",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "actor",
          "port": "bob",
          "role": "callee",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "admission",
      "kind": "H23",
      "incidences": [
        {
          "node": "auth",
          "port": "grant",
          "role": "principal",
          "ordinal": 0
        },
        {
          "node": "actor",
          "port": "admission",
          "role": "resource",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "persist",
      "kind": "H05",
      "incidences": [
        {
          "node": "actor",
          "port": "append",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "journal",
          "port": "append",
          "role": "callee",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "committed",
      "kind": "H04",
      "incidences": [
        {
          "node": "actor",
          "port": "committed",
          "role": "publisher",
          "ordinal": 0
        },
        {
          "node": "events",
          "port": "committed",
          "role": "subscriber",
          "ordinal": 0
        }
      ]
    }
  ]
}
