{
  "_comment": "TVG4 topology — the diagram IS this file.  Now down to the IMPLEMENTATION modules + the recursive TVG4 result-tile.  Cosmetic DEMO tiles (node-module, edge-panel, pan-zoom, drag, select, edge-define, positions, viewer-panel) were removed once the kernel started loading the real .js modules directly.  Surviving nodes form a dependency waterfall top-left → bottom-right: foundations (no deps), composites, viewer, kernel, recursion.  ARCHITECTURAL REQUIREMENT: each module exists independent of every other module; modules interact ONLY through the standard interface (dataflow channels + scene); ONLY this topology file defines relationships between modules.  Adding `\"active\": false` to any node deactivates that module without touching its source — the kernel skips its import.",
  "agent": "TVG",
  "nodes": [
    {
      "id": "topology-io",
      "x": -54.8703,
      "y": 1207.14,
      "w": 298.97050747265416,
      "h": 217.92907698499528,
      "cap": "topology-io.js",
      "src": "/demo/topology-io.html",
      "module": "/topology-io.js",
      "out": [
        {
          "name": "topology",
          "type": "topology"
        },
        {
          "name": "save",
          "type": "save"
        }
      ],
      "in": [],
      "face": "front"
    },
    {
      "id": "type-registry",
      "x": -364.597,
      "y": 985.08,
      "w": 210,
      "h": 338.06538927295594,
      "cap": "type-registry.js",
      "src": "/demo/type-registry.html",
      "module": "/type-registry.js",
      "out": [
        {
          "name": "validators",
          "type": "validator"
        }
      ],
      "in": [],
      "face": "front"
    },
    {
      "id": "port-layout",
      "x": 266.978,
      "y": -399.452,
      "w": 316.9413548039347,
      "h": 140.37786381912895,
      "cap": "port-layout.js",
      "src": "/demo/port-layout.html",
      "module": "/port-layout.js",
      "out": [
        {
          "name": "layout",
          "type": "layout"
        }
      ],
      "in": [],
      "face": "front"
    },
    {
      "id": "dataflow",
      "x": -1089.69,
      "y": 648.855,
      "w": 260,
      "h": 150,
      "cap": "dataflow.js",
      "src": "/demo/dataflow.html",
      "module": "/dataflow.js",
      "out": [
        {
          "name": "binder",
          "type": "binder"
        }
      ],
      "in": [],
      "face": "front"
    },
    {
      "id": "reactive",
      "x": -745.988,
      "y": 832.347,
      "w": 260,
      "h": 150,
      "cap": "reactive.js",
      "src": "/demo/reactive.html",
      "module": "/reactive.js",
      "out": [
        {
          "name": "binder",
          "type": "binder"
        }
      ],
      "in": [],
      "face": "front"
    },
    {
      "id": "selection-set",
      "x": 347.641,
      "y": 553.814,
      "w": 260,
      "h": 150,
      "cap": "selection-set.js",
      "src": "/demo/selection-set.html",
      "module": "/selection-set.js",
      "out": [
        {
          "name": "binder",
          "type": "binder"
        }
      ],
      "in": [],
      "face": "front"
    },
    {
      "id": "undo",
      "x": 1444.62,
      "y": 1215.15,
      "w": 260,
      "h": 150,
      "cap": "undo.js",
      "src": "/demo/undo.html",
      "module": "/undo.js",
      "out": [
        {
          "name": "binder",
          "type": "binder"
        }
      ],
      "in": [],
      "face": "front"
    },
    {
      "id": "tile-render",
      "x": -835.683,
      "y": -76.3744,
      "w": 319.9136453940721,
      "h": 190.45170226673815,
      "cap": "tile-render.js",
      "src": "/demo/tile-render.html",
      "module": "/tile-render.js",
      "out": [
        {
          "name": "renderer",
          "type": "renderer"
        },
        {
          "name": "tiles",
          "type": "element"
        },
        {
          "name": "accessors",
          "type": "accessor-registry"
        },
        {
          "name": "registrar",
          "type": "node-type-registrar"
        }
      ],
      "in": [
        {
          "name": "layout",
          "type": "layout"
        },
        {
          "name": "bodySpec",
          "type": "body-spec-primitives"
        }
      ],
      "face": "front"
    },
    {
      "id": "edge-render",
      "x": -160.098,
      "y": 143.389,
      "w": 260,
      "h": 150,
      "cap": "edge-render.js",
      "src": "/demo/edge-render.html",
      "module": "/edge-render.js",
      "out": [
        {
          "name": "renderer",
          "type": "renderer"
        },
        {
          "name": "edges",
          "type": "element"
        }
      ],
      "in": [
        {
          "name": "layout",
          "type": "layout"
        }
      ],
      "face": "front"
    },
    {
      "id": "pan-zoom",
      "x": -1401.97,
      "y": -340.13,
      "w": 322,
      "h": 192,
      "cap": "pan-zoom.js",
      "src": "/demo/pan-zoom.html",
      "module": "/pan-zoom.js",
      "out": [
        {
          "name": "binder",
          "type": "binder"
        }
      ],
      "in": [],
      "face": "front"
    },
    {
      "id": "camera-fit",
      "x": -991.212,
      "y": -651.556,
      "w": 249.09938135866537,
      "h": 221.26461286993182,
      "cap": "camera-fit.js",
      "src": "/demo/camera-fit.html",
      "module": "/camera-fit.js",
      "out": [
        {
          "name": "scene-transform",
          "type": "transform"
        }
      ],
      "in": [],
      "face": "front",
      "zIndex": 0
    },
    {
      "id": "drag",
      "x": -588.65,
      "y": -538.326,
      "w": 218,
      "h": 197,
      "cap": "drag.js",
      "src": "/demo/drag.html",
      "module": "/drag.js",
      "out": [
        {
          "name": "binder",
          "type": "binder"
        }
      ],
      "in": [
        {
          "name": "tiles",
          "type": "element"
        }
      ],
      "face": "front"
    },
    {
      "id": "resize",
      "x": -416.18,
      "y": -885.657,
      "w": 192,
      "h": 167.46148149316812,
      "cap": "resize.js",
      "src": "/demo/resize.html",
      "module": "/resize.js",
      "out": [
        {
          "name": "binder",
          "type": "binder"
        }
      ],
      "in": [
        {
          "name": "tiles",
          "type": "element"
        },
        {
          "name": "accessors",
          "type": "accessor-registry"
        }
      ],
      "face": "front"
    },
    {
      "id": "port-reorder-mod",
      "x": 584.366,
      "y": -714.045,
      "w": 281.65982951477713,
      "h": 193.50418918973446,
      "cap": "port-reorder-gesture.js",
      "src": "/demo/port-reorder-gesture.html",
      "module": "/port-reorder-gesture.js",
      "out": [
        {
          "name": "reorder",
          "type": "gesture"
        }
      ],
      "in": [
        {
          "name": "layout",
          "type": "layout"
        },
        {
          "name": "edges",
          "type": "element"
        }
      ],
      "face": "front"
    },
    {
      "id": "edge-define-mod",
      "x": 344.066,
      "y": -33.8796,
      "w": 293.0529469264776,
      "h": 167.5262356724453,
      "cap": "edge-define-gesture.js",
      "src": "/demo/edge-define-gesture.html",
      "module": "/edge-define-gesture.js",
      "out": [
        {
          "name": "binder",
          "type": "binder"
        }
      ],
      "in": [],
      "face": "front"
    },
    {
      "id": "hover-highlight",
      "x": -217.913,
      "y": -420.246,
      "w": 295.72572990809596,
      "h": 245.19693697084972,
      "cap": "hover-highlight.js",
      "src": "/demo/hover-highlight.html",
      "module": "/hover-highlight.js",
      "out": [],
      "in": [
        {
          "name": "targets",
          "type": "element"
        }
      ],
      "face": "front"
    },
    {
      "id": "click-select",
      "x": 837.066,
      "y": 58.0269,
      "w": 260,
      "h": 150,
      "cap": "click-select.js",
      "module": "/click-select.js",
      "type": "flipcard",
      "panel": {
        "src": "/demo/click-select.html"
      },
      "internal": {
        "src": "/click-select.tvg4.json"
      },
      "face": "back",
      "out": [],
      "in": [
        {
          "name": "cards",
          "type": "element"
        },
        {
          "name": "edges",
          "type": "element"
        }
      ]
    },
    {
      "id": "lasso-select",
      "x": 924.916,
      "y": 291.601,
      "w": 301.2306310981291,
      "h": 228.55020900747934,
      "cap": "lasso-select.js",
      "src": "/demo/lasso-select.html",
      "module": "/lasso-select.js",
      "out": [],
      "in": [
        {
          "name": "cards",
          "type": "element"
        },
        {
          "name": "edges",
          "type": "element"
        },
        {
          "name": "strokes",
          "type": "element"
        }
      ],
      "face": "front"
    },
    {
      "id": "edge-tooltip",
      "x": 739.033,
      "y": -211.902,
      "w": 249.18095070008764,
      "h": 191.09761854789343,
      "cap": "edge-tooltip.js",
      "src": "/demo/edge-tooltip.html",
      "module": "/edge-tooltip.js",
      "out": [
        {
          "name": "binder",
          "type": "binder"
        }
      ],
      "in": [],
      "face": "front"
    },
    {
      "id": "context-menu",
      "include": "/context-menu.tvg4.json",
      "x": 691.539,
      "y": 844.454,
      "w": 300.0083388847056,
      "h": 224.03231789609103,
      "face": 1,
      "zIndex": 14,
      "out": [
        {
          "name": "binder",
          "type": "binder"
        }
      ]
    },
    {
      "id": "prompt-dialog",
      "x": 1421.27,
      "y": 355.961,
      "w": 220,
      "h": 110,
      "cap": "prompt-dialog.js",
      "src": "/demo/prompt-dialog.html",
      "module": "/prompt-dialog.js",
      "out": [],
      "in": [],
      "face": "front"
    },
    {
      "id": "agent-field",
      "x": 1607.15,
      "y": 558.829,
      "w": 220,
      "h": 110,
      "cap": "agent-field.js",
      "src": "/demo/agent-field.html",
      "module": "/agent-field.js",
      "out": [],
      "in": [
        {
          "name": "tiles",
          "type": "element"
        }
      ],
      "face": "front",
      "zIndex": -1
    },
    {
      "id": "agent-style",
      "x": 1739.04,
      "y": 335.256,
      "w": 260,
      "h": 150,
      "cap": "agent-style.js",
      "src": "/demo/agent-style.html",
      "module": "/agent-style.js",
      "out": [],
      "in": [],
      "face": "front"
    },
    {
      "id": "keyboard-gestures",
      "x": 1123.31,
      "y": 1060.95,
      "w": 260,
      "h": 150,
      "cap": "keyboard-gestures.js",
      "src": "/demo/keyboard-gestures.html",
      "module": "/keyboard-gestures.js",
      "out": [
        {
          "name": "binder",
          "type": "binder"
        }
      ],
      "in": [],
      "face": "front"
    },
    {
      "id": "spacemouse",
      "include": "/spacemouse.tvg4.json",
      "x": 1731.11,
      "y": 943.866,
      "w": 260,
      "h": 150,
      "face": "front"
    },
    {
      "id": "viewer-module",
      "x": 1855.56,
      "y": 1510.01,
      "w": 402.75847977615837,
      "h": 255.93212363539448,
      "cap": "viewer.js",
      "src": "/demo/viewer.html",
      "module": "/viewer.js",
      "out": [
        {
          "name": "scene",
          "type": "scene"
        }
      ],
      "in": [
        {
          "name": "save",
          "type": "save"
        },
        {
          "name": "topology",
          "type": "topology"
        },
        {
          "name": "types",
          "type": "validator"
        },
        {
          "name": "edge-render",
          "type": "renderer"
        },
        {
          "name": "port-layout",
          "type": "layout"
        },
        {
          "name": "edge-define",
          "type": "binder"
        },
        {
          "name": "port-reorder",
          "type": "gesture"
        },
        {
          "name": "tile-render",
          "type": "renderer"
        },
        {
          "name": "camera-fit",
          "type": "transform"
        },
        {
          "name": "pan-zoom",
          "type": "binder"
        },
        {
          "name": "drag",
          "type": "binder"
        },
        {
          "name": "resize",
          "type": "binder"
        },
        {
          "name": "edge-tooltip",
          "type": "binder"
        },
        {
          "name": "context-menu",
          "type": "binder"
        },
        {
          "name": "reactive",
          "type": "binder"
        },
        {
          "name": "selection-set",
          "type": "binder"
        },
        {
          "name": "click-select",
          "type": "binder"
        },
        {
          "name": "keyboard-gestures",
          "type": "binder"
        },
        {
          "name": "undo",
          "type": "binder"
        }
      ],
      "face": "front"
    },
    {
      "id": "kernel",
      "x": 387.673,
      "y": 1475.33,
      "w": 260,
      "h": 170,
      "cap": "kernel (tvg4.html)",
      "src": "/demo/kernel.html",
      "out": [],
      "in": [
        {
          "name": "scene",
          "type": "scene"
        }
      ],
      "face": "front"
    },
    {
      "id": "tvg4",
      "x": 2434.48,
      "y": 1882.96,
      "w": 943.7379834222668,
      "h": 616.1449157382219,
      "cap": "TVG4 ↺ (self)",
      "src": "/tvg4.json.html?depth=1",
      "out": [],
      "in": [
        {
          "name": "self-reference",
          "type": "scene"
        }
      ],
      "zIndex": 8,
      "face": "front"
    },
    {
      "id": "flipcard",
      "include": "/flipcard.tvg4.json",
      "x": 797.222,
      "y": -971.067,
      "w": 358.06328059950044,
      "h": 178.08779422352507,
      "out": [],
      "in": [
        {
          "name": "tiles",
          "type": "element"
        },
        {
          "name": "registrar",
          "type": "node-type-registrar"
        }
      ],
      "face": "front"
    },
    {
      "id": "knob",
      "x": 925.758,
      "y": -685.892,
      "w": 240,
      "h": 110,
      "cap": "knob.js",
      "out": [],
      "in": [
        {
          "name": "tiles",
          "type": "element"
        },
        {
          "name": "registrar",
          "type": "node-type-registrar"
        }
      ],
      "include": "/knob.tvg4.json"
    },
    {
      "id": "switch",
      "x": 950.168,
      "y": -508.653,
      "w": 240,
      "h": 110,
      "cap": "switch.js",
      "out": [],
      "in": [
        {
          "name": "tiles",
          "type": "element"
        },
        {
          "name": "registrar",
          "type": "node-type-registrar"
        }
      ],
      "include": "/switch.tvg4.json"
    },
    {
      "id": "card",
      "x": -685.541,
      "y": -763.91,
      "w": 240,
      "h": 110,
      "cap": "card.js",
      "out": [],
      "in": [
        {
          "name": "tiles",
          "type": "element"
        },
        {
          "name": "registrar",
          "type": "node-type-registrar"
        }
      ],
      "include": "/card.tvg4.json"
    },
    {
      "id": "hail-card",
      "x": -120.991,
      "y": -1024.95,
      "w": 240,
      "h": 110,
      "cap": "hail-card.js",
      "out": [],
      "in": [
        {
          "name": "tiles",
          "type": "element"
        },
        {
          "name": "registrar",
          "type": "node-type-registrar"
        }
      ],
      "include": "/hail-card.tvg4.json"
    },
    {
      "id": "iframe",
      "include": "/iframe.tvg4.json",
      "x": -995.87,
      "y": -1032.77,
      "w": 443.0070665040272,
      "h": 218.83250372872828,
      "zIndex": 10,
      "face": "front",
      "in": [
        {
          "name": "registrar",
          "type": "node-type-registrar"
        }
      ]
    },
    {
      "id": "raster",
      "include": "/raster.tvg4.json",
      "x": 965,
      "y": -270,
      "w": 240,
      "h": 110,
      "in": [
        {
          "name": "registrar",
          "type": "node-type-registrar"
        }
      ]
    },
    {
      "id": "drop-card",
      "x": 317.045,
      "y": -910.396,
      "w": 240,
      "h": 110,
      "cap": "drop-card.js",
      "module": "/drop-card.js",
      "out": [],
      "in": []
    },
    {
      "id": "dnd-card",
      "x": 317.045,
      "y": -1030.396,
      "w": 240,
      "h": 110,
      "cap": "dnd-card.js",
      "module": "/dnd-card.js",
      "out": [],
      "in": [
        {
          "name": "tiles",
          "type": "element"
        }
      ]
    },
    {
      "id": "drop-url",
      "x": 317.045,
      "y": -790.396,
      "w": 240,
      "h": 110,
      "cap": "drop-url.js",
      "module": "/drop-url.js",
      "out": [],
      "in": []
    },
    {
      "id": "iframe-drag",
      "x": 227.261,
      "y": -1097.84,
      "w": 240,
      "h": 110,
      "cap": "iframe-drag.js",
      "module": "/iframe-drag.js",
      "out": [],
      "in": []
    },
    {
      "id": "titlebar-link",
      "x": 9.16297,
      "y": -715.105,
      "w": 240,
      "h": 110,
      "cap": "titlebar-link.js",
      "module": "/titlebar-link.js",
      "src": "/demo/titlebar-link.html",
      "out": [],
      "in": [
        {
          "name": "tiles",
          "type": "element"
        },
        {
          "name": "accessors",
          "type": "accessor-registry"
        }
      ],
      "face": "front"
    },
    {
      "in": [],
      "out": [],
      "type": "iframe",
      "title": "pan-zoom-capture.tvg4.json",
      "cap": "zoom-capture",
      "x": -1461.47,
      "y": -846.198,
      "w": 382,
      "h": 281,
      "src": "/pan-zoom-capture.tvg4.json.html?depth=1&preview=1",
      "id": "n-wkgp6h",
      "zIndex": 9
    },
    {
      "id": "pen",
      "cap": "pen",
      "title": "pen",
      "src": "/pen.tvg4.json.html?depth=1",
      "face": "front",
      "x": 2176.8,
      "y": 676.385,
      "w": 280,
      "h": 170,
      "role": "interactive",
      "in": [
        {
          "name": "reconcile",
          "type": "keyed-projection"
        }
      ],
      "out": [
        {
          "name": "strokes",
          "type": "element"
        }
      ],
      "include": "/pen.tvg4.json"
    },
    {
      "id": "scene-dataflow",
      "cap": "scene-dataflow.js",
      "module": "/scene-dataflow.js",
      "x": 1200,
      "y": -100,
      "w": 240,
      "h": 110,
      "in": [
        {
          "name": "tiles",
          "type": "element"
        }
      ],
      "out": []
    },
    {
      "id": "n-nested-scaling",
      "type": "iframe",
      "cap": "nested-scaling",
      "title": "nested-scaling.tvg4.json",
      "x": -1493.72,
      "y": -6.46884,
      "w": 482,
      "h": 412.98279573278745,
      "src": "/nested-scaling.tvg4.json.html?depth=1&preview=1"
    },
    {
      "id": "n-interaction-thresholds",
      "type": "iframe",
      "cap": "interaction-thresholds",
      "title": "interaction-thresholds.tvg4.json",
      "x": 2000,
      "y": 2600,
      "w": 480,
      "h": 320,
      "src": "/interaction-thresholds.tvg4.json.html?depth=1&preview=1"
    },
    {
      "id": "n-lod-diagram",
      "type": "iframe",
      "cap": "lod-diagram",
      "title": "lod-diagram.tvg4.json",
      "x": 2520,
      "y": 2600,
      "w": 640,
      "h": 400,
      "src": "/lod-diagram.tvg4.json.html?depth=1&preview=1"
    },
    {
      "id": "textbox",
      "include": "/textbox.tvg4.json",
      "in": [
        {
          "name": "registrar",
          "type": "node-type-registrar"
        },
        {
          "name": "bodySpec",
          "type": "body-spec-primitives"
        }
      ],
      "out": [],
      "x": 965,
      "y": -420,
      "w": 240,
      "h": 110
    },
    {
      "id": "filelink",
      "include": "/filelink.tvg4.json",
      "in": [
        {
          "name": "registrar",
          "type": "node-type-registrar"
        }
      ],
      "out": [],
      "x": 965,
      "y": -540,
      "w": 240,
      "h": 110
    },
    {
      "id": "reconcile-keyed",
      "include": "/reconcile-keyed.tvg4.json",
      "in": [],
      "out": [
        {
          "name": "primitive",
          "type": "keyed-projection"
        }
      ],
      "x": -1300,
      "y": -100,
      "w": 260,
      "h": 110
    },
    {
      "id": "body-spec",
      "include": "/body-spec.tvg4.json",
      "in": [],
      "out": [
        {
          "name": "primitives",
          "type": "body-spec-primitives"
        }
      ],
      "x": -1300,
      "y": 80,
      "w": 260,
      "h": 110
    },
    {
      "in": [],
      "out": [],
      "type": "iframe",
      "x": 1536,
      "y": -198,
      "w": 380,
      "h": 280,
      "cap": "untitled",
      "id": "n-655ytc",
      "zIndex": 15,
      "src": "http://localhost:8086/maxi-test.tvg4.json.html",
      "title": "maxi-test"
    },
    {
      "id": "code",
      "x": 950,
      "y": -330,
      "w": 240,
      "h": 110,
      "cap": "code.js",
      "out": [],
      "in": [
        {
          "name": "tiles",
          "type": "element"
        },
        {
          "name": "registrar",
          "type": "node-type-registrar"
        }
      ],
      "include": "/code.tvg4.json"
    },
    {
      "id": "promote",
      "x": 950,
      "y": -190,
      "w": 240,
      "h": 110,
      "cap": "promote.js",
      "module": "/promote.js",
      "out": [],
      "in": []
    },
    {
      "in": [],
      "out": [],
      "type": "iframe",
      "x": 342,
      "y": 819,
      "w": 380,
      "h": 280,
      "cap": "untitled",
      "title": "probe-scene-1785022530744",
      "entryMode": "scene",
      "id": "n-hq3v0j",
      "zIndex": 16,
      "src": "/probe-scene-1785022530744.tvg4.json.html"
    }
  ],
  "edges": [
    {
      "from": {
        "node": "topology-io",
        "port": "topology"
      },
      "to": {
        "node": "viewer-module",
        "port": "topology"
      },
      "type": "topology"
    },
    {
      "from": {
        "node": "topology-io",
        "port": "save"
      },
      "to": {
        "node": "viewer-module",
        "port": "save"
      },
      "type": "save"
    },
    {
      "from": {
        "node": "type-registry",
        "port": "validators"
      },
      "to": {
        "node": "viewer-module",
        "port": "types"
      },
      "type": "validator"
    },
    {
      "from": {
        "node": "camera-fit",
        "port": "scene-transform"
      },
      "to": {
        "node": "viewer-module",
        "port": "camera-fit"
      },
      "type": "transform"
    },
    {
      "from": {
        "node": "port-layout",
        "port": "layout"
      },
      "to": {
        "node": "tile-render",
        "port": "layout"
      },
      "type": "layout"
    },
    {
      "from": {
        "node": "port-layout",
        "port": "layout"
      },
      "to": {
        "node": "edge-render",
        "port": "layout"
      },
      "type": "layout"
    },
    {
      "from": {
        "node": "port-layout",
        "port": "layout"
      },
      "to": {
        "node": "port-reorder-mod",
        "port": "layout"
      },
      "type": "layout"
    },
    {
      "from": {
        "node": "port-layout",
        "port": "layout"
      },
      "to": {
        "node": "viewer-module",
        "port": "port-layout"
      },
      "type": "layout"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "renderer"
      },
      "to": {
        "node": "viewer-module",
        "port": "tile-render"
      },
      "type": "renderer"
    },
    {
      "from": {
        "node": "edge-render",
        "port": "renderer"
      },
      "to": {
        "node": "viewer-module",
        "port": "edge-render"
      },
      "type": "renderer"
    },
    {
      "from": {
        "node": "edge-define-mod",
        "port": "binder"
      },
      "to": {
        "node": "viewer-module",
        "port": "edge-define"
      },
      "type": "binder"
    },
    {
      "from": {
        "node": "port-reorder-mod",
        "port": "reorder"
      },
      "to": {
        "node": "viewer-module",
        "port": "port-reorder"
      },
      "type": "gesture"
    },
    {
      "from": {
        "node": "viewer-module",
        "port": "scene"
      },
      "to": {
        "node": "kernel",
        "port": "scene"
      },
      "type": "scene"
    },
    {
      "from": {
        "node": "viewer-module",
        "port": "scene"
      },
      "to": {
        "node": "tvg4",
        "port": "self-reference"
      },
      "type": "scene"
    },
    {
      "from": {
        "node": "pan-zoom",
        "port": "binder"
      },
      "to": {
        "node": "viewer-module",
        "port": "pan-zoom"
      },
      "type": "binder"
    },
    {
      "from": {
        "node": "drag",
        "port": "binder"
      },
      "to": {
        "node": "viewer-module",
        "port": "drag"
      },
      "type": "binder"
    },
    {
      "from": {
        "node": "resize",
        "port": "binder"
      },
      "to": {
        "node": "viewer-module",
        "port": "resize"
      },
      "type": "binder"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "drag",
        "port": "tiles"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "hover-highlight",
        "port": "targets"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "edge-render",
        "port": "edges"
      },
      "to": {
        "node": "hover-highlight",
        "port": "targets"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "click-select",
        "port": "cards"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "edge-render",
        "port": "edges"
      },
      "to": {
        "node": "click-select",
        "port": "edges"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "lasso-select",
        "port": "cards"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "edge-render",
        "port": "edges"
      },
      "to": {
        "node": "lasso-select",
        "port": "edges"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "edge-tooltip",
        "port": "binder"
      },
      "to": {
        "node": "viewer-module",
        "port": "edge-tooltip"
      },
      "type": "binder"
    },
    {
      "from": {
        "node": "context-menu",
        "port": "binder"
      },
      "to": {
        "node": "viewer-module",
        "port": "context-menu"
      },
      "type": "binder"
    },
    {
      "from": {
        "node": "reactive",
        "port": "binder"
      },
      "to": {
        "node": "viewer-module",
        "port": "reactive"
      },
      "type": "binder"
    },
    {
      "from": {
        "node": "selection-set",
        "port": "binder"
      },
      "to": {
        "node": "viewer-module",
        "port": "selection-set"
      },
      "type": "binder"
    },
    {
      "from": {
        "node": "keyboard-gestures",
        "port": "binder"
      },
      "to": {
        "node": "viewer-module",
        "port": "keyboard-gestures"
      },
      "type": "binder"
    },
    {
      "from": {
        "node": "undo",
        "port": "binder"
      },
      "to": {
        "node": "viewer-module",
        "port": "undo"
      },
      "type": "binder"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "resize",
        "port": "tiles"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "edge-render",
        "port": "edges"
      },
      "to": {
        "node": "port-reorder-mod",
        "port": "edges"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "flipcard",
        "port": "tiles"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "registrar"
      },
      "to": {
        "node": "flipcard",
        "port": "registrar"
      },
      "type": "node-type-registrar"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "agent-field",
        "port": "tiles"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "knob",
        "port": "tiles"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "dnd-card",
        "port": "tiles"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "registrar"
      },
      "to": {
        "node": "knob",
        "port": "registrar"
      },
      "type": "node-type-registrar"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "switch",
        "port": "tiles"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "card",
        "port": "tiles"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "registrar"
      },
      "to": {
        "node": "card",
        "port": "registrar"
      },
      "type": "node-type-registrar"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "registrar"
      },
      "to": {
        "node": "switch",
        "port": "registrar"
      },
      "type": "node-type-registrar"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "hail-card",
        "port": "tiles"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "registrar"
      },
      "to": {
        "node": "hail-card",
        "port": "registrar"
      },
      "type": "node-type-registrar"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "registrar"
      },
      "to": {
        "node": "iframe",
        "port": "registrar"
      },
      "type": "node-type-registrar"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "registrar"
      },
      "to": {
        "node": "raster",
        "port": "registrar"
      },
      "type": "node-type-registrar"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "titlebar-link",
        "port": "tiles"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "accessors"
      },
      "to": {
        "node": "titlebar-link",
        "port": "accessors"
      },
      "type": "accessor-registry"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "accessors"
      },
      "to": {
        "node": "resize",
        "port": "accessors"
      },
      "type": "accessor-registry"
    },
    {
      "from": {
        "node": "pen",
        "port": "strokes"
      },
      "to": {
        "node": "lasso-select",
        "port": "strokes"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "tiles"
      },
      "to": {
        "node": "scene-dataflow",
        "port": "tiles"
      },
      "type": "element"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "registrar"
      },
      "to": {
        "node": "textbox",
        "port": "registrar"
      },
      "type": "node-type-registrar"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "registrar"
      },
      "to": {
        "node": "filelink",
        "port": "registrar"
      },
      "type": "node-type-registrar"
    },
    {
      "from": {
        "node": "reconcile-keyed",
        "port": "primitive"
      },
      "to": {
        "node": "pen",
        "port": "reconcile"
      },
      "type": "keyed-projection"
    },
    {
      "from": {
        "node": "body-spec",
        "port": "primitives"
      },
      "to": {
        "node": "tile-render",
        "port": "bodySpec"
      },
      "type": "body-spec-primitives"
    },
    {
      "from": {
        "node": "body-spec",
        "port": "primitives"
      },
      "to": {
        "node": "textbox",
        "port": "bodySpec"
      },
      "type": "body-spec-primitives"
    },
    {
      "from": {
        "node": "tile-render",
        "port": "registrar"
      },
      "to": {
        "node": "code",
        "port": "registrar"
      },
      "type": "node-type-registrar"
    }
  ],
  "userEdges": [
    {
      "from": "drag",
      "to": "resize"
    },
    {
      "from": "port-reorder-mod",
      "to": "port-layout"
    },
    {
      "from": "click-select",
      "to": "selection-set"
    },
    {
      "from": "context-menu",
      "to": "hail-menu-cmd"
    },
    {
      "from": "edge-render",
      "to": "edge-define-mod"
    },
    {
      "from": "edge-define-mod",
      "to": "edge-tooltip"
    },
    {
      "from": "tile-render",
      "to": "drag"
    },
    {
      "from": "edge-render",
      "to": "port-layout"
    },
    {
      "from": "tile-render",
      "to": "hover-highlight"
    },
    {
      "from": "selection-set",
      "to": "lasso-select"
    },
    {
      "from": "pan-zoom",
      "to": "camera-fit"
    },
    {
      "from": "tile-render",
      "to": "resize"
    },
    {
      "from": "edge-render",
      "to": "port-reorder-mod"
    },
    {
      "from": "n-wkgp6h",
      "to": "pan-zoom"
    }
  ],
  "strokes": []
}
