{
  "id": "web-collaboration",
  "revision": "5c6fa3ef17b10ec413e1e7580cdf88574aee3e4f70888ee887e8c3e6b1c1f0f9",
  "regions": [
    {
      "id": "browser",
      "label": "Browser"
    },
    {
      "id": "edge",
      "label": "Edge services"
    },
    {
      "id": "data",
      "label": "Data authorities"
    }
  ],
  "nodes": [
    {
      "id": "editor",
      "label": "Document Surface",
      "kind": "N11",
      "region": "browser",
      "ports": [
        {
          "id": "delta",
          "profile": "P04",
          "contract": "CRDTDeltaV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "replica",
      "label": "Local CRDT replica",
      "kind": "N25",
      "region": "browser",
      "ports": [
        {
          "id": "delta",
          "profile": "P04",
          "contract": "CRDTDeltaV1",
          "polarity": "Require"
        },
        {
          "id": "session",
          "profile": "P07",
          "contract": "DocumentSessionV1",
          "polarity": "Require"
        },
        {
          "id": "state",
          "profile": "P24",
          "contract": "ReplicaRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "room",
      "label": "Room actor",
      "kind": "N05",
      "region": "edge",
      "ports": [
        {
          "id": "session",
          "profile": "P07",
          "contract": "DocumentSessionV1",
          "polarity": "Offer"
        },
        {
          "id": "log",
          "profile": "P02",
          "contract": "DocumentAppendV1",
          "polarity": "Require"
        },
        {
          "id": "authority",
          "profile": "P20",
          "contract": "DocumentGrantV1",
          "polarity": "Require"
        },
        {
          "id": "presence",
          "profile": "P04",
          "contract": "PresenceV1",
          "polarity": "Offer"
        },
        {
          "id": "epoch",
          "profile": "P24",
          "contract": "ActivationRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "policy",
      "label": "Workspace policy",
      "kind": "N33",
      "region": "edge",
      "ports": [
        {
          "id": "grant",
          "profile": "P20",
          "contract": "DocumentGrantV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "log",
      "label": "Document update log",
      "kind": "N24",
      "region": "data",
      "ports": [
        {
          "id": "append",
          "profile": "P02",
          "contract": "DocumentAppendV1",
          "polarity": "Offer"
        },
        {
          "id": "position",
          "profile": "P24",
          "contract": "LogPositionV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "presence",
      "label": "Presence TTL view",
      "kind": "N22",
      "region": "edge",
      "ports": [
        {
          "id": "events",
          "profile": "P04",
          "contract": "PresenceV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "edit",
      "kind": "H02",
      "incidences": [
        {
          "node": "editor",
          "port": "delta",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "replica",
          "port": "delta",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "session",
      "kind": "H06",
      "incidences": [
        {
          "node": "room",
          "port": "session",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "replica",
          "port": "session",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "persist",
      "kind": "H05",
      "incidences": [
        {
          "node": "log",
          "port": "append",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "room",
          "port": "log",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "grant",
      "kind": "H23",
      "incidences": [
        {
          "node": "policy",
          "port": "grant",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "room",
          "port": "authority",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "presence",
      "kind": "H02",
      "incidences": [
        {
          "node": "room",
          "port": "presence",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "presence",
          "port": "events",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "replicas",
      "kind": "H14",
      "incidences": [
        {
          "node": "replica",
          "port": "state",
          "role": "local",
          "ordinal": 0
        },
        {
          "node": "log",
          "port": "position",
          "role": "durable",
          "ordinal": 1
        },
        {
          "node": "room",
          "port": "epoch",
          "role": "coordinator",
          "ordinal": 2
        }
      ]
    }
  ]
}
