{
  "id": "mobile-offline",
  "revision": "49761185d049a8802597968e03c4942f3e314819d581eea6dc6068cdab35abbd",
  "regions": [
    {
      "id": "device",
      "label": "Mobile device"
    },
    {
      "id": "edge",
      "label": "Edge services"
    }
  ],
  "nodes": [
    {
      "id": "view",
      "label": "Notebook Surface",
      "kind": "N11",
      "region": "device",
      "ports": [
        {
          "id": "edit",
          "profile": "P04",
          "contract": "EditIntentV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "edit",
      "label": "Local edit logic",
      "kind": "N02",
      "region": "device",
      "ports": [
        {
          "id": "input",
          "profile": "P04",
          "contract": "EditIntentV1",
          "polarity": "Require"
        },
        {
          "id": "store",
          "profile": "P02",
          "contract": "LocalMutationV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "store",
      "label": "Local durable store",
      "kind": "N21",
      "region": "device",
      "ports": [
        {
          "id": "commit",
          "profile": "P02",
          "contract": "LocalMutationV1",
          "polarity": "Offer"
        },
        {
          "id": "pending",
          "profile": "P01",
          "contract": "PendingBatchV1",
          "polarity": "Offer"
        },
        {
          "id": "revision",
          "profile": "P24",
          "contract": "RevisionRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "sync",
      "label": "Sync agent",
      "kind": "N25",
      "region": "device",
      "ports": [
        {
          "id": "pending",
          "profile": "P01",
          "contract": "PendingBatchV1",
          "polarity": "Require"
        },
        {
          "id": "remote",
          "profile": "P02",
          "contract": "SyncBatchV1",
          "polarity": "Require"
        },
        {
          "id": "reconciler",
          "profile": "P24",
          "contract": "ImplementationRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "api",
      "label": "Notebook service",
      "kind": "N19",
      "region": "edge",
      "ports": [
        {
          "id": "reconcile",
          "profile": "P02",
          "contract": "SyncBatchV1",
          "polarity": "Offer"
        },
        {
          "id": "storage",
          "profile": "P02",
          "contract": "ConditionalWriteV1",
          "polarity": "Require"
        },
        {
          "id": "authority",
          "profile": "P20",
          "contract": "WorkspaceGrantV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "authority",
      "label": "Notebook authority",
      "kind": "N21",
      "region": "edge",
      "ports": [
        {
          "id": "conditional",
          "profile": "P02",
          "contract": "ConditionalWriteV1",
          "polarity": "Offer"
        },
        {
          "id": "revision",
          "profile": "P24",
          "contract": "RevisionRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "policy",
      "label": "Workspace policy",
      "kind": "N33",
      "region": "edge",
      "ports": [
        {
          "id": "grant",
          "profile": "P20",
          "contract": "WorkspaceGrantV1",
          "polarity": "Offer"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "input",
      "kind": "H02",
      "incidences": [
        {
          "node": "view",
          "port": "edit",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "edit",
          "port": "input",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "local",
      "kind": "H05",
      "incidences": [
        {
          "node": "store",
          "port": "commit",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "edit",
          "port": "store",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "pending",
      "kind": "H02",
      "incidences": [
        {
          "node": "store",
          "port": "pending",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "sync",
          "port": "pending",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "remote",
      "kind": "H05",
      "incidences": [
        {
          "node": "api",
          "port": "reconcile",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "sync",
          "port": "remote",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "write",
      "kind": "H05",
      "incidences": [
        {
          "node": "authority",
          "port": "conditional",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "api",
          "port": "storage",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "grant",
      "kind": "H23",
      "incidences": [
        {
          "node": "policy",
          "port": "grant",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "api",
          "port": "authority",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "lineage",
      "kind": "H27",
      "incidences": [
        {
          "node": "store",
          "port": "revision",
          "role": "localRevision",
          "ordinal": 0
        },
        {
          "node": "authority",
          "port": "revision",
          "role": "remoteRevision",
          "ordinal": 1
        },
        {
          "node": "sync",
          "port": "reconciler",
          "role": "reconciler",
          "ordinal": 2
        }
      ]
    }
  ]
}
