{
  "type": "excalidraw",
  "version": 2,
  "source": "https://excalidraw.com",
  "appState": {
    "viewBackgroundColor": "#FAF7F0",
    "gridSize": null
  },
  "files": {},
  "elements": [
    {
      "angle": 0,
      "backgroundColor": "#F7E7C4",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100002,
      "version": 2,
      "versionNonce": 100502,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "legend_artifact",
      "type": "rectangle",
      "x": 5750,
      "y": 65,
      "width": 46,
      "height": 46
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100004,
      "version": 2,
      "versionNonce": 100504,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "legend_state",
      "type": "rectangle",
      "x": 6450,
      "y": 65,
      "width": 46,
      "height": 46
    },
    {
      "angle": 0,
      "backgroundColor": "#EDE2CE",
      "fillStyle": "solid",
      "strokeColor": "#786F64",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100010,
      "version": 2,
      "versionNonce": 100510,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub",
      "type": "ellipse",
      "x": 1700,
      "y": 1670,
      "width": 1100,
      "height": 520
    },
    {
      "angle": 0,
      "backgroundColor": "#F7E7C4",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200001,
      "version": 2,
      "versionNonce": 200501,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_set",
      "type": "rectangle",
      "x": 150,
      "y": 365,
      "width": 1150,
      "height": 440,
      "startBinding": null,
      "endBinding": null
    },
    {
      "angle": 0,
      "backgroundColor": "#1e293b",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 500006,
      "version": 2,
      "versionNonce": 500506,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "import_bg",
      "type": "rectangle",
      "x": 160,
      "y": 2110,
      "width": 1170,
      "height": 205,
      "startBinding": null,
      "endBinding": null
    },
    {
      "angle": 0,
      "backgroundColor": "#F0F7F1",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700001,
      "version": 2,
      "versionNonce": 700501,
      "updated": 2,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "s6_ipc",
          "type": "arrow"
        },
        {
          "id": "s6_schedule_p",
          "type": "arrow"
        },
        {
          "id": "syscall_request",
          "type": "arrow"
        }
      ],
      "link": null,
      "locked": false,
      "id": "process_p",
      "type": "rectangle",
      "x": 3100,
      "y": 1660,
      "width": 2500,
      "height": 1600
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700003,
      "version": 2,
      "versionNonce": 700503,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "shared_state",
      "type": "rectangle",
      "x": 3180,
      "y": 1810,
      "width": 1350,
      "height": 175
    },
    {
      "angle": 0,
      "backgroundColor": "#E9DFF2",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700005,
      "version": 2,
      "versionNonce": 700505,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "runtime_inner",
      "type": "rectangle",
      "x": 4640,
      "y": 1805,
      "width": 875,
      "height": 185
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700016,
      "version": 2,
      "versionNonce": 700516,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "local-record-bg",
      "type": "rectangle",
      "x": 3200,
      "y": 2320,
      "width": 650,
      "height": 190
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700018,
      "version": 2,
      "versionNonce": 700518,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "subscription_table",
      "type": "rectangle",
      "x": 4050,
      "y": 2320,
      "width": 1400,
      "height": 155
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700024,
      "version": 2,
      "versionNonce": 700524,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "queue_slot1",
      "type": "rectangle",
      "x": 4060,
      "y": 2580,
      "width": 250,
      "height": 85
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700025,
      "version": 2,
      "versionNonce": 700525,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "queue_slot2",
      "type": "rectangle",
      "x": 4320,
      "y": 2580,
      "width": 250,
      "height": 85
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700026,
      "version": 2,
      "versionNonce": 700526,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "queue_slot3",
      "type": "rectangle",
      "x": 4580,
      "y": 2580,
      "width": 250,
      "height": 85
    },
    {
      "angle": 0,
      "backgroundColor": "#75519E",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700034,
      "version": 2,
      "versionNonce": 700534,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_a_dot1",
      "type": "ellipse",
      "x": 3850,
      "y": 2867,
      "width": 26,
      "height": 26
    },
    {
      "angle": 0,
      "backgroundColor": "#75519E",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700035,
      "version": 2,
      "versionNonce": 700535,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_a_dot2",
      "type": "ellipse",
      "x": 4340,
      "y": 2867,
      "width": 26,
      "height": 26
    },
    {
      "angle": 0,
      "backgroundColor": "#75519E",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700036,
      "version": 2,
      "versionNonce": 700536,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_a_dot3",
      "type": "ellipse",
      "x": 5040,
      "y": 2867,
      "width": 26,
      "height": 26
    },
    {
      "angle": 0,
      "backgroundColor": "#FBE2D7",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700044,
      "version": 2,
      "versionNonce": 700544,
      "updated": 2,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "distributed-send",
          "type": "arrow"
        }
      ],
      "link": null,
      "locked": false,
      "id": "event_port_p",
      "type": "rectangle",
      "x": 5578,
      "y": 2355,
      "width": 44,
      "height": 64
    },
    {
      "angle": 0,
      "backgroundColor": "#FBE2D7",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700045,
      "version": 2,
      "versionNonce": 700545,
      "updated": 2,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "distributed-send",
          "type": "arrow"
        },
        {
          "id": "distributed-deliver",
          "type": "arrow"
        }
      ],
      "link": null,
      "locked": false,
      "id": "distributed-broker",
      "type": "rectangle",
      "x": 5850,
      "y": 2140,
      "width": 490,
      "height": 450
    },
    {
      "angle": 0,
      "backgroundColor": "#F0F7F1",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700050,
      "version": 2,
      "versionNonce": 700550,
      "updated": 2,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "s6_ipc",
          "type": "arrow"
        },
        {
          "id": "s6_schedule_q",
          "type": "arrow"
        }
      ],
      "link": null,
      "locked": false,
      "id": "remote_process",
      "type": "rectangle",
      "x": 6500,
      "y": 1660,
      "width": 735,
      "height": 1600
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700052,
      "version": 2,
      "versionNonce": 700552,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s6_q_memory",
      "type": "rectangle",
      "x": 6560,
      "y": 1880,
      "width": 615,
      "height": 195
    },
    {
      "angle": 0,
      "backgroundColor": "#FBE2D7",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700054,
      "version": 2,
      "versionNonce": 700554,
      "updated": 2,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "distributed-deliver",
          "type": "arrow"
        }
      ],
      "link": null,
      "locked": false,
      "id": "event_port_q",
      "type": "rectangle",
      "x": 6478,
      "y": 2355,
      "width": 44,
      "height": 64
    },
    {
      "angle": 0,
      "backgroundColor": "#403D39",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800007,
      "version": 2,
      "versionNonce": 800507,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_code",
      "type": "rectangle",
      "x": 1270,
      "y": 3240,
      "width": 1330,
      "height": 250
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800009,
      "version": 2,
      "versionNonce": 800509,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "promise_record",
      "type": "rectangle",
      "x": 1270,
      "y": 3550,
      "width": 560,
      "height": 100
    },
    {
      "angle": 0,
      "backgroundColor": "#F3ECE1",
      "fillStyle": "solid",
      "strokeColor": "#786F64",
      "strokeWidth": 3,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800015,
      "version": 2,
      "versionNonce": 800515,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_host",
      "type": "rectangle",
      "x": 140,
      "y": 3820,
      "width": 2520,
      "height": 955
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800018,
      "version": 2,
      "versionNonce": 800518,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "microtask_slot1",
      "type": "rectangle",
      "x": 220,
      "y": 4120,
      "width": 170,
      "height": 75
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800019,
      "version": 2,
      "versionNonce": 800519,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "microtask_slot2",
      "type": "rectangle",
      "x": 400,
      "y": 4120,
      "width": 170,
      "height": 75
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800020,
      "version": 2,
      "versionNonce": 800520,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "microtask_slot3",
      "type": "rectangle",
      "x": 580,
      "y": 4120,
      "width": 170,
      "height": 75
    },
    {
      "angle": 0,
      "backgroundColor": "#75519E",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800028,
      "version": 2,
      "versionNonce": 800528,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "browser_thread_dot1",
      "type": "ellipse",
      "x": 1210,
      "y": 4188,
      "width": 24,
      "height": 24
    },
    {
      "angle": 0,
      "backgroundColor": "#75519E",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800029,
      "version": 2,
      "versionNonce": 800529,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "browser_thread_dot2",
      "type": "ellipse",
      "x": 1510,
      "y": 4188,
      "width": 24,
      "height": 24
    },
    {
      "angle": 0,
      "backgroundColor": "#E9DFF2",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800030,
      "version": 2,
      "versionNonce": 800530,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_worker",
      "type": "rectangle",
      "x": 1960,
      "y": 3970,
      "width": 635,
      "height": 530
    },
    {
      "angle": 0,
      "backgroundColor": "#FBE2D7",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900001,
      "version": 2,
      "versionNonce": 900501,
      "updated": 2,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "s6_schedule_p",
          "type": "arrow"
        },
        {
          "id": "syscall_kernel",
          "type": "arrow"
        },
        {
          "id": "s6_schedule_q",
          "type": "arrow"
        },
        {
          "id": "kernel_cpu",
          "type": "arrow"
        }
      ],
      "link": null,
      "locked": false,
      "id": "kernel",
      "type": "rectangle",
      "x": 3100,
      "y": 3780,
      "width": 4120,
      "height": 445
    },
    {
      "angle": 0,
      "backgroundColor": "#FBE2D7",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900008,
      "version": 2,
      "versionNonce": 900508,
      "updated": 2,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "syscall_request",
          "type": "arrow"
        },
        {
          "id": "syscall_kernel",
          "type": "arrow"
        }
      ],
      "link": null,
      "locked": false,
      "id": "syscall",
      "type": "rectangle",
      "x": 3120,
      "y": 3560,
      "width": 310,
      "height": 90
    },
    {
      "angle": 0,
      "backgroundColor": "#E9DFF2",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900018,
      "version": 2,
      "versionNonce": 900518,
      "updated": 2,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "kernel_cpu",
          "type": "arrow"
        }
      ],
      "link": null,
      "locked": false,
      "id": "cpu",
      "type": "rectangle",
      "x": 3120,
      "y": 4380,
      "width": 2450,
      "height": 440
    },
    {
      "angle": 0,
      "backgroundColor": "#C8B2DF",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900022,
      "version": 2,
      "versionNonce": 900522,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_a1",
      "type": "rectangle",
      "x": 3770,
      "y": 4525,
      "width": 450,
      "height": 83
    },
    {
      "angle": 0,
      "backgroundColor": "#FAF7F0",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900023,
      "version": 2,
      "versionNonce": 900523,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_b1",
      "type": "rectangle",
      "x": 4250,
      "y": 4525,
      "width": 530,
      "height": 83
    },
    {
      "angle": 0,
      "backgroundColor": "#C8B2DF",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900024,
      "version": 2,
      "versionNonce": 900524,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_a2",
      "type": "rectangle",
      "x": 4810,
      "y": 4525,
      "width": 650,
      "height": 83
    },
    {
      "angle": 0,
      "backgroundColor": "#D9C9E9",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900025,
      "version": 2,
      "versionNonce": 900525,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_c1",
      "type": "rectangle",
      "x": 3770,
      "y": 4650,
      "width": 1010,
      "height": 83
    },
    {
      "angle": 0,
      "backgroundColor": "#FAF7F0",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900026,
      "version": 2,
      "versionNonce": 900526,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_b2",
      "type": "rectangle",
      "x": 4810,
      "y": 4650,
      "width": 650,
      "height": 83
    },
    {
      "angle": 0,
      "backgroundColor": "#DEF1E9",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900036,
      "version": 2,
      "versionNonce": 900536,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "device_memory",
      "type": "rectangle",
      "x": 5870,
      "y": 4530,
      "width": 350,
      "height": 180
    },
    {
      "angle": 0,
      "backgroundColor": "#FBE2D7",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900038,
      "version": 2,
      "versionNonce": 900538,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "device_network",
      "type": "rectangle",
      "x": 6340,
      "y": 4530,
      "width": 350,
      "height": 180
    },
    {
      "angle": 0,
      "backgroundColor": "#E9DFF2",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900040,
      "version": 2,
      "versionNonce": 900540,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "device_gpu",
      "type": "rectangle",
      "x": 6810,
      "y": 4530,
      "width": 350,
      "height": 180
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100006,
      "version": 2,
      "versionNonce": 100506,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "legend_control",
      "type": "arrow",
      "x": 5750,
      "y": 158,
      "width": 60,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          60,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100008,
      "version": 2,
      "versionNonce": 100508,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "legend_wire",
      "type": "arrow",
      "x": 6450,
      "y": 158,
      "width": 60,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          60,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100014,
      "version": 2,
      "versionNonce": 100514,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_tools",
      "type": "line",
      "x": 1810,
      "y": 1730,
      "width": 550,
      "height": 425,
      "points": [
        [
          0,
          0
        ],
        [
          -240,
          -280
        ],
        [
          -550,
          -425
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": null,
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100016,
      "version": 2,
      "versionNonce": 100516,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_roles",
      "type": "line",
      "x": 2220,
      "y": 1670,
      "width": 0,
      "height": 380,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          -380
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": null,
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100018,
      "version": 2,
      "versionNonce": 100518,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_origins",
      "type": "arrow",
      "x": 1330,
      "y": 1960,
      "width": 350,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          350,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100020,
      "version": 2,
      "versionNonce": 100520,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_process",
      "type": "arrow",
      "x": 2800,
      "y": 1930,
      "width": 280,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          280,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100022,
      "version": 2,
      "versionNonce": 100522,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_browser",
      "type": "line",
      "x": 2230,
      "y": 2470,
      "width": 0,
      "height": 480,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          480
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": null,
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100024,
      "version": 2,
      "versionNonce": 100524,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "build_to_process",
      "type": "arrow",
      "x": 5530,
      "y": 1340,
      "width": 90,
      "height": 280,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          150
        ],
        [
          -90,
          150
        ],
        [
          -90,
          280
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100027,
      "version": 2,
      "versionNonce": 100527,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "tool_roles_relation",
      "type": "arrow",
      "x": 1300,
      "y": 575,
      "width": 400,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          400,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100029,
      "version": 2,
      "versionNonce": 100529,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "examples_to_roles",
      "type": "arrow",
      "x": 5900,
      "y": 250,
      "width": 2720,
      "height": 105,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          -15
        ],
        [
          -2520,
          -15
        ],
        [
          -2520,
          90
        ],
        [
          -2720,
          90
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200004,
      "version": 2,
      "versionNonce": 200504,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_tree",
      "type": "line",
      "x": 215,
      "y": 555,
      "width": 55,
      "height": 175,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          175
        ],
        [
          55,
          175
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": null,
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200005,
      "version": 2,
      "versionNonce": 200505,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_tree_a",
      "type": "line",
      "x": 215,
      "y": 560,
      "width": 55,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          55,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": null,
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200006,
      "version": 2,
      "versionNonce": 200506,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_tree_b",
      "type": "line",
      "x": 215,
      "y": 645,
      "width": 55,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          55,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": null,
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200010,
      "version": 2,
      "versionNonce": 200510,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_to_api",
      "type": "arrow",
      "x": 380,
      "y": 805,
      "width": 0,
      "height": 108,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          108
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200012,
      "version": 2,
      "versionNonce": 200512,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_to_package",
      "type": "arrow",
      "x": 1030,
      "y": 805,
      "width": 0,
      "height": 108,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          108
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300004,
      "version": 2,
      "versionNonce": 300504,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "library_call",
      "type": "arrow",
      "x": 2130,
      "y": 492,
      "width": 400,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          400,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300011,
      "version": 2,
      "versionNonce": 300511,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "framework_start",
      "type": "arrow",
      "x": 2090,
      "y": 820,
      "width": 125,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          125,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300012,
      "version": 2,
      "versionNonce": 300512,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "framework_dispatch",
      "type": "arrow",
      "x": 2630,
      "y": 820,
      "width": 110,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          110,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300014,
      "version": 2,
      "versionNonce": 300514,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "framework_return",
      "type": "arrow",
      "x": 2990,
      "y": 900,
      "width": 570,
      "height": 60,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          60
        ],
        [
          -570,
          60
        ],
        [
          -570,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400004,
      "version": 2,
      "versionNonce": 400504,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "source_compile",
      "type": "arrow",
      "x": 4540,
      "y": 438,
      "width": 100,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          100,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400005,
      "version": 2,
      "versionNonce": 400505,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "compile_object",
      "type": "arrow",
      "x": 5010,
      "y": 438,
      "width": 145,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          145,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400008,
      "version": 2,
      "versionNonce": 400508,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "object_link",
      "type": "arrow",
      "x": 5340,
      "y": 515,
      "width": 480,
      "height": 145,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          65
        ],
        [
          -480,
          65
        ],
        [
          -480,
          145
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400010,
      "version": 2,
      "versionNonce": 400510,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "static_link",
      "type": "arrow",
      "x": 4600,
      "y": 740,
      "width": 60,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          60,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400012,
      "version": 2,
      "versionNonce": 400512,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "link_output",
      "type": "arrow",
      "x": 5010,
      "y": 740,
      "width": 145,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          145,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400016,
      "version": 2,
      "versionNonce": 400516,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "script_runtime",
      "type": "arrow",
      "x": 4810,
      "y": 1070,
      "width": 120,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          120,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 500004,
      "version": 2,
      "versionNonce": 500504,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "own_assembly",
      "type": "arrow",
      "x": 705,
      "y": 1800,
      "width": 145,
      "height": 82,
      "points": [
        [
          0,
          0
        ],
        [
          60,
          0
        ],
        [
          145,
          82
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 500005,
      "version": 2,
      "versionNonce": 500505,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "third_assembly",
      "type": "arrow",
      "x": 705,
      "y": 1980,
      "width": 145,
      "height": 50,
      "points": [
        [
          0,
          0
        ],
        [
          60,
          0
        ],
        [
          145,
          -50
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600003,
      "version": 2,
      "versionNonce": 600503,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "next_react",
      "type": "arrow",
      "x": 6575,
      "y": 465,
      "width": 265,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          -265,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600009,
      "version": 2,
      "versionNonce": 600509,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "pi_layer1",
      "type": "arrow",
      "x": 5950,
      "y": 760,
      "width": 0,
      "height": 94,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          94
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600010,
      "version": 2,
      "versionNonce": 600510,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "pi_layer2",
      "type": "arrow",
      "x": 5950,
      "y": 890,
      "width": 0,
      "height": 94,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          94
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700010,
      "version": 2,
      "versionNonce": 700510,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "local-publish",
      "type": "arrow",
      "x": 3800,
      "y": 2200,
      "width": 215,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          215,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700013,
      "version": 2,
      "versionNonce": 700513,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "local-call",
      "type": "arrow",
      "x": 4630,
      "y": 2200,
      "width": 250,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          250,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700023,
      "version": 2,
      "versionNonce": 700523,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "record_enqueue",
      "type": "arrow",
      "x": 3860,
      "y": 2440,
      "width": 190,
      "height": 180,
      "points": [
        [
          0,
          0
        ],
        [
          60,
          0
        ],
        [
          60,
          180
        ],
        [
          190,
          180
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700030,
      "version": 2,
      "versionNonce": 700530,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "queue_take",
      "type": "arrow",
      "x": 4850,
      "y": 2620,
      "width": 200,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          200,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700033,
      "version": 2,
      "versionNonce": 700533,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_a_track",
      "type": "arrow",
      "x": 3770,
      "y": 2880,
      "width": 1690,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          1690,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700041,
      "version": 2,
      "versionNonce": 700541,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_b_track",
      "type": "arrow",
      "x": 3770,
      "y": 3060,
      "width": 1690,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          1690,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700047,
      "version": 2,
      "versionNonce": 700547,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "broker_slots",
      "type": "line",
      "x": 5900,
      "y": 2440,
      "width": 350,
      "height": 65,
      "points": [
        [
          0,
          0
        ],
        [
          350,
          0
        ],
        [
          350,
          65
        ],
        [
          0,
          65
        ],
        [
          0,
          0
        ],
        [
          115,
          0
        ],
        [
          115,
          65
        ],
        [
          230,
          65
        ],
        [
          230,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": null,
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700048,
      "version": 2,
      "versionNonce": 700548,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "distributed-send",
      "type": "arrow",
      "x": 5625,
      "y": 2388,
      "width": 220,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          220,
          0
        ]
      ],
      "startBinding": {
        "elementId": "event_port_p",
        "focus": 0,
        "gap": 3
      },
      "endBinding": {
        "elementId": "distributed-broker",
        "focus": 0.1,
        "gap": 5
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700055,
      "version": 2,
      "versionNonce": 700555,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "distributed-deliver",
      "type": "arrow",
      "x": 6345,
      "y": 2388,
      "width": 130,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          130,
          0
        ]
      ],
      "startBinding": {
        "elementId": "distributed-broker",
        "focus": 0.1,
        "gap": 5
      },
      "endBinding": {
        "elementId": "event_port_q",
        "focus": 0,
        "gap": 3
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700058,
      "version": 2,
      "versionNonce": 700558,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_q_track",
      "type": "arrow",
      "x": 6570,
      "y": 2970,
      "width": 580,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          580,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700060,
      "version": 2,
      "versionNonce": 700560,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s6_ipc",
      "type": "arrow",
      "x": 5430,
      "y": 3265,
      "width": 1440,
      "height": 210,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          210
        ],
        [
          1440,
          210
        ],
        [
          1440,
          0
        ]
      ],
      "startArrowhead": "arrow",
      "startBinding": {
        "elementId": "process_p",
        "focus": 0.864,
        "gap": 5
      },
      "endBinding": {
        "elementId": "remote_process",
        "focus": 0.007,
        "gap": 5
      },
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800003,
      "version": 2,
      "versionNonce": 800503,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_app_tree",
      "type": "line",
      "x": 190,
      "y": 3330,
      "width": 50,
      "height": 230,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          230
        ],
        [
          50,
          230
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": null,
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800004,
      "version": 2,
      "versionNonce": 800504,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_app_branch1",
      "type": "line",
      "x": 190,
      "y": 3340,
      "width": 50,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          50,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": null,
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800011,
      "version": 2,
      "versionNonce": 800511,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "promise_state_arrow",
      "type": "arrow",
      "x": 1850,
      "y": 3600,
      "width": 180,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          180,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800013,
      "version": 2,
      "versionNonce": 800513,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_dependency",
      "type": "arrow",
      "x": 700,
      "y": 3670,
      "width": 0,
      "height": 135,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          135
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800024,
      "version": 2,
      "versionNonce": 800524,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_schedule_arrow",
      "type": "arrow",
      "x": 800,
      "y": 4155,
      "width": 300,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          300,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800027,
      "version": 2,
      "versionNonce": 800527,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "browser_thread_track",
      "type": "arrow",
      "x": 1150,
      "y": 4200,
      "width": 650,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          650,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800032,
      "version": 2,
      "versionNonce": 800532,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_worker_message",
      "type": "arrow",
      "x": 1810,
      "y": 4210,
      "width": 130,
      "height": 0,
      "points": [
        [
          0,
          0
        ],
        [
          130,
          0
        ]
      ],
      "startArrowhead": "arrow",
      "startBinding": null,
      "endBinding": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800035,
      "version": 2,
      "versionNonce": 800535,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_ready_arrow",
      "type": "arrow",
      "x": 550,
      "y": 4380,
      "width": 0,
      "height": 150,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          -150
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800038,
      "version": 2,
      "versionNonce": 800538,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "browser_os_link",
      "type": "arrow",
      "x": 1330,
      "y": 4560,
      "width": 1760,
      "height": 510,
      "points": [
        [
          0,
          0
        ],
        [
          1580,
          0
        ],
        [
          1580,
          -510
        ],
        [
          1760,
          -510
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900005,
      "version": 2,
      "versionNonce": 900505,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s6_schedule_p",
      "type": "arrow",
      "x": 3930,
      "y": 3770,
      "width": 0,
      "height": 500,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          -500
        ]
      ],
      "startBinding": {
        "elementId": "kernel",
        "focus": -0.597,
        "gap": 10
      },
      "endBinding": {
        "elementId": "process_p",
        "focus": -0.336,
        "gap": 10
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900007,
      "version": 2,
      "versionNonce": 900507,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "syscall_request",
      "type": "arrow",
      "x": 3270,
      "y": 3265,
      "width": 0,
      "height": 290,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          290
        ]
      ],
      "startArrowhead": "arrow",
      "startBinding": {
        "elementId": "process_p",
        "focus": -0.864,
        "gap": 5
      },
      "endBinding": {
        "elementId": "syscall",
        "focus": -0.03,
        "gap": 5
      },
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900010,
      "version": 2,
      "versionNonce": 900510,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "syscall_kernel",
      "type": "arrow",
      "x": 3270,
      "y": 3660,
      "width": 0,
      "height": 110,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          110
        ]
      ],
      "startArrowhead": "arrow",
      "startBinding": {
        "elementId": "syscall",
        "focus": -0.03,
        "gap": 10
      },
      "endBinding": {
        "elementId": "kernel",
        "focus": -0.917,
        "gap": 10
      },
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900012,
      "version": 2,
      "versionNonce": 900512,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s6_schedule_q",
      "type": "arrow",
      "x": 7000,
      "y": 3770,
      "width": 0,
      "height": 500,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          -500
        ]
      ],
      "startBinding": {
        "elementId": "kernel",
        "focus": 0.893,
        "gap": 10
      },
      "endBinding": {
        "elementId": "remote_process",
        "focus": 0.36,
        "gap": 10
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900014,
      "version": 2,
      "versionNonce": 900514,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "communication_system",
      "type": "arrow",
      "x": 6100,
      "y": 3475,
      "width": 0,
      "height": 295,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          295
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 4,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900016,
      "version": 2,
      "versionNonce": 900516,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "kernel_cpu",
      "type": "arrow",
      "x": 4390,
      "y": 4235,
      "width": 0,
      "height": 140,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          140
        ]
      ],
      "startBinding": {
        "elementId": "kernel",
        "focus": -0.374,
        "gap": 10
      },
      "endBinding": {
        "elementId": "cpu",
        "focus": 0.037,
        "gap": 5
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 3,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900033,
      "version": 2,
      "versionNonce": 900533,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "kernel_devices",
      "type": "arrow",
      "x": 6510,
      "y": 4235,
      "width": 0,
      "height": 135,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          135
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "lastCommittedPoint": null
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100000,
      "version": 2,
      "versionNonce": 100500,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "atlas_title",
      "type": "text",
      "x": 140,
      "y": 55,
      "width": 5200,
      "height": 95,
      "fontSize": 76,
      "text": "一个软件系统 · 从构成到运行的知识地图",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "一个软件系统 · 从构成到运行的知识地图"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#786F64",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100001,
      "version": 2,
      "versionNonce": 100501,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "atlas_subtitle",
      "type": "text",
      "x": 145,
      "y": 165,
      "width": 5350,
      "height": 40,
      "fontSize": 32,
      "text": "同一画布，不同观察角度。沿边界看归属，沿箭头看关系；放大到局部，辨认执行者与状态。",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "同一画布，不同观察角度。沿边界看归属，沿箭头看关系；放大到局部，辨认执行者与状态。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100003,
      "version": 2,
      "versionNonce": 100503,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "legend_artifact_text",
      "type": "text",
      "x": 5815,
      "y": 70,
      "width": 545,
      "height": 36.25,
      "fontSize": 29,
      "text": "赭黄：代码、接口与交付",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "赭黄：代码、接口与交付"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100005,
      "version": 2,
      "versionNonce": 100505,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "legend_state_text",
      "type": "text",
      "x": 6515,
      "y": 70,
      "width": 700,
      "height": 36.25,
      "fontSize": 29,
      "text": "青绿：数据、状态与资源边界",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "青绿：数据、状态与资源边界"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100007,
      "version": 2,
      "versionNonce": 100507,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "legend_control_text",
      "type": "text",
      "x": 5830,
      "y": 138,
      "width": 565,
      "height": 36.25,
      "fontSize": 29,
      "text": "紫色：执行、控制与调度",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "紫色：执行、控制与调度"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100009,
      "version": 2,
      "versionNonce": 100509,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "legend_wire_text",
      "type": "text",
      "x": 6530,
      "y": 138,
      "width": 700,
      "height": 36.25,
      "fontSize": 29,
      "text": "珊瑚：跨边界通信与系统接口",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "珊瑚：跨边界通信与系统接口"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100011,
      "version": 2,
      "versionNonce": 100511,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_title",
      "type": "text",
      "x": 1890,
      "y": 1770,
      "width": 850,
      "height": 83.75,
      "fontSize": 67,
      "text": "一个软件系统",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "一个软件系统"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100012,
      "version": 2,
      "versionNonce": 100512,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_sub",
      "type": "text",
      "x": 1850,
      "y": 1900,
      "width": 865,
      "height": 135,
      "fontSize": 36,
      "text": "业务代码 + 依赖 + 配置 + 资源\n可由多个进程与服务共同实现\n软件角色，不等于运行边界",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "业务代码 + 依赖 + 配置 + 资源\n可由多个进程与服务共同实现\n软件角色，不等于运行边界"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#786F64",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100013,
      "version": 2,
      "versionNonce": 100513,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_note",
      "type": "text",
      "x": 1770,
      "y": 2290,
      "width": 1080,
      "height": 155,
      "fontSize": 31,
      "text": "库、框架、SDK 是不同观察角度。\n同一产品可以同时符合多个标签。\n下方浏览器区是实现例子；右侧是进程结构。\n虚线关联不表示执行顺序。",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "库、框架、SDK 是不同观察角度。\n同一产品可以同时符合多个标签。\n下方浏览器区是实现例子；右侧是进程结构。\n虚线关联不表示执行顺序。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100015,
      "version": 2,
      "versionNonce": 100515,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_tools_label",
      "type": "text",
      "x": 1350,
      "y": 1420,
      "width": 480,
      "height": 77.5,
      "fontSize": 31,
      "text": "通过接口接入\n通过工具开发",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "通过接口接入\n通过工具开发"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100017,
      "version": 2,
      "versionNonce": 100517,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_roles_label",
      "type": "text",
      "x": 2300,
      "y": 1450,
      "width": 730,
      "height": 77.5,
      "fontSize": 31,
      "text": "提供能力 / 组织流程\n上方机制可存在于右侧进程内",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "提供能力 / 组织流程\n上方机制可存在于右侧进程内"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100019,
      "version": 2,
      "versionNonce": 100519,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_origins_label",
      "type": "text",
      "x": 1360,
      "y": 1880,
      "width": 330,
      "height": 36.25,
      "fontSize": 29,
      "text": "组成与依赖",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "组成与依赖"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100021,
      "version": 2,
      "versionNonce": 100521,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_process_label",
      "type": "text",
      "x": 2800,
      "y": 1800,
      "width": 260,
      "height": 70,
      "fontSize": 28,
      "text": "代码与状态\n进入运行边界",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "代码与状态\n进入运行边界"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100023,
      "version": 2,
      "versionNonce": 100523,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "hub_browser_label",
      "type": "text",
      "x": 2300,
      "y": 2600,
      "width": 670,
      "height": 116.25,
      "fontSize": 31,
      "text": "一个具体实现：浏览器宿主\n展开接口与执行调度的职责\n不把宿主简单等同于一个进程",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "一个具体实现：浏览器宿主\n展开接口与执行调度的职责\n不把宿主简单等同于一个进程"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100025,
      "version": 2,
      "versionNonce": 100525,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "build_to_process_label",
      "type": "text",
      "x": 4720,
      "y": 1430,
      "width": 735,
      "height": 77.5,
      "fontSize": 31,
      "text": "装载 / 映射本机代码；\n脚本与字节码由对应运行时处理",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "装载 / 映射本机代码；\n脚本与字节码由对应运行时处理"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#786F64",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100026,
      "version": 2,
      "versionNonce": 100526,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "map_scope",
      "type": "text",
      "x": 180,
      "y": 2650,
      "width": 1510,
      "height": 155,
      "fontSize": 31,
      "text": "读图范围：软件开发与运行全景。\n上方看代码角色与交付，右侧看进程与系统。\n同步、异步、事件、线程放回实际承担职责的位置。\n框架没有独占的操作系统层。",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "读图范围：软件开发与运行全景。\n上方看代码角色与交付，右侧看进程与系统。\n同步、异步、事件、线程放回实际承担职责的位置。\n框架没有独占的操作系统层。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100028,
      "version": 2,
      "versionNonce": 100528,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "tool_roles_label",
      "type": "text",
      "x": 1410,
      "y": 480,
      "width": 310,
      "height": 72.5,
      "fontSize": 29,
      "text": "工具集合可包含\n这些实现能力",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "工具集合可包含\n这些实现能力"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 100030,
      "version": 2,
      "versionNonce": 100530,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "examples_to_roles_label",
      "type": "text",
      "x": 3450,
      "y": 330,
      "width": 680,
      "height": 112.5,
      "fontSize": 30,
      "text": "右侧产品是实例\n同一对象可对应多种角色\n标签取决于观察的问题",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "右侧产品是实例\n同一对象可对应多种角色\n标签取决于观察的问题"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200000,
      "version": 2,
      "versionNonce": 200500,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "tools_heading",
      "type": "text",
      "x": 150,
      "y": 270,
      "width": 1190,
      "height": 55,
      "fontSize": 44,
      "text": "开发接口与工具",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "开发接口与工具"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200002,
      "version": 2,
      "versionNonce": 200502,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_title",
      "type": "text",
      "x": 195,
      "y": 405,
      "width": 1050,
      "height": 48.75,
      "fontSize": 39,
      "text": "SDK：交付给开发者的一套工具",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "SDK：交付给开发者的一套工具"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200003,
      "version": 2,
      "versionNonce": 200503,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_sub",
      "type": "text",
      "x": 195,
      "y": 475,
      "width": 1020,
      "height": 35,
      "fontSize": 28,
      "text": "集合中的内容按产品需要组合，可多可少",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "集合中的内容按产品需要组合，可多可少"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200007,
      "version": 2,
      "versionNonce": 200507,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_libraries",
      "type": "text",
      "x": 300,
      "y": 537,
      "width": 920,
      "height": 40,
      "fontSize": 32,
      "text": "客户端库 / 框架实现 / 引擎接口",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "客户端库 / 框架实现 / 引擎接口"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200008,
      "version": 2,
      "versionNonce": 200508,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_tools",
      "type": "text",
      "x": 300,
      "y": 622,
      "width": 930,
      "height": 40,
      "fontSize": 32,
      "text": "编译、调试、打包等开发工具（可选）",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "编译、调试、打包等开发工具（可选）"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200009,
      "version": 2,
      "versionNonce": 200509,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_materials",
      "type": "text",
      "x": 300,
      "y": 707,
      "width": 950,
      "height": 40,
      "fontSize": 32,
      "text": "文档 / 示例 / 类型定义 / 头文件",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "文档 / 示例 / 类型定义 / 头文件"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200011,
      "version": 2,
      "versionNonce": 200511,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_api_label",
      "type": "text",
      "x": 420,
      "y": 842,
      "width": 365,
      "height": 31.25,
      "fontSize": 25,
      "text": "公开使用约定",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "公开使用约定"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200013,
      "version": 2,
      "versionNonce": 200513,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "sdk_package_label",
      "type": "text",
      "x": 1070,
      "y": 835,
      "width": 260,
      "height": 62.5,
      "fontSize": 25,
      "text": "可通过一个\n或多个包交付",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "可通过一个\n或多个包交付"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200014,
      "version": 2,
      "versionNonce": 200514,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "api_title",
      "type": "text",
      "x": 160,
      "y": 937,
      "width": 590,
      "height": 47.5,
      "fontSize": 38,
      "text": "API：使用与扩展的约定",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "API：使用与扩展的约定"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200015,
      "version": 2,
      "versionNonce": 200515,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "api_detail",
      "type": "text",
      "x": 160,
      "y": 1005,
      "width": 630,
      "height": 70,
      "fontSize": 28,
      "text": "函数、类、参数、回调或通信协议\n有 API，并不意味着必须跨网络",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "函数、类、参数、回调或通信协议\n有 API，并不意味着必须跨网络"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200016,
      "version": 2,
      "versionNonce": 200516,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "package_title",
      "type": "text",
      "x": 840,
      "y": 937,
      "width": 520,
      "height": 45,
      "fontSize": 36,
      "text": "Package：分发单位",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "Package：分发单位"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200017,
      "version": 2,
      "versionNonce": 200517,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "package_detail",
      "type": "text",
      "x": 840,
      "y": 1005,
      "width": 480,
      "height": 70,
      "fontSize": 28,
      "text": "安装、版本、依赖管理\n如 npm 包、NuGet 包",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "安装、版本、依赖管理\n如 npm 包、NuGet 包"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 200018,
      "version": 2,
      "versionNonce": 200518,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "tools_note",
      "type": "text",
      "x": 150,
      "y": 1160,
      "width": 1160,
      "height": 70,
      "fontSize": 28,
      "text": "SDK 描述“提供给开发者什么”；框架描述“怎样组织流程”。\n两者可以同时适用于同一套软件。",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "SDK 描述“提供给开发者什么”；框架描述“怎样组织流程”。\n两者可以同时适用于同一套软件。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300000,
      "version": 2,
      "versionNonce": 300500,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "roles_heading",
      "type": "text",
      "x": 1760,
      "y": 270,
      "width": 1410,
      "height": 55,
      "fontSize": 44,
      "text": "代码组织与控制权",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "代码组织与控制权"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300001,
      "version": 2,
      "versionNonce": 300501,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "library_title",
      "type": "text",
      "x": 1760,
      "y": 378,
      "width": 1370,
      "height": 42.5,
      "fontSize": 34,
      "text": "库 Library：提供可复用的功能实现",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "库 Library：提供可复用的功能实现"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300002,
      "version": 2,
      "versionNonce": 300502,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "library_app",
      "type": "text",
      "x": 1780,
      "y": 465,
      "width": 330,
      "height": 40,
      "fontSize": 32,
      "text": "你的业务代码",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "你的业务代码"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300003,
      "version": 2,
      "versionNonce": 300503,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "library_fn",
      "type": "text",
      "x": 2590,
      "y": 460,
      "width": 570,
      "height": 80,
      "fontSize": 32,
      "text": "库中的函数 / 对象\n如 JSON.parse(...)",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "库中的函数 / 对象\n如 JSON.parse(...)"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300005,
      "version": 2,
      "versionNonce": 300505,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "library_call_label",
      "type": "text",
      "x": 2250,
      "y": 445,
      "width": 220,
      "height": 33.75,
      "fontSize": 27,
      "text": "主动调用",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "主动调用"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300006,
      "version": 2,
      "versionNonce": 300506,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "library_note",
      "type": "text",
      "x": 1760,
      "y": 580,
      "width": 1360,
      "height": 33.75,
      "fontSize": 27,
      "text": "库也可以使用回调；不能仅凭“谁调用谁”判断所有软件。",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "库也可以使用回调；不能仅凭“谁调用谁”判断所有软件。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300007,
      "version": 2,
      "versionNonce": 300507,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "framework_title",
      "type": "text",
      "x": 1760,
      "y": 680,
      "width": 1370,
      "height": 42.5,
      "fontSize": 34,
      "text": "框架 Framework：复用流程骨架，保留扩展位置",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "框架 Framework：复用流程骨架，保留扩展位置"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300008,
      "version": 2,
      "versionNonce": 300508,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "framework_app",
      "type": "text",
      "x": 1760,
      "y": 790,
      "width": 320,
      "height": 77.5,
      "fontSize": 31,
      "text": "应用入口\n创建 / 配置 / 启动",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "应用入口\n创建 / 配置 / 启动"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300009,
      "version": 2,
      "versionNonce": 300509,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "framework_flow",
      "type": "text",
      "x": 2250,
      "y": 790,
      "width": 370,
      "height": 77.5,
      "fontSize": 31,
      "text": "框架组织流程\n生命周期 / 调度规则",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "框架组织流程\n生命周期 / 调度规则"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300010,
      "version": 2,
      "versionNonce": 300510,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "framework_custom",
      "type": "text",
      "x": 2780,
      "y": 790,
      "width": 390,
      "height": 77.5,
      "fontSize": 31,
      "text": "你的扩展点\n组件 / 工具 / 回调",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "你的扩展点\n组件 / 工具 / 回调"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300013,
      "version": 2,
      "versionNonce": 300513,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "framework_dispatch_label",
      "type": "text",
      "x": 2605,
      "y": 745,
      "width": 220,
      "height": 30,
      "fontSize": 24,
      "text": "到约定时机调用",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "到约定时机调用"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300015,
      "version": 2,
      "versionNonce": 300515,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "framework_return_label",
      "type": "text",
      "x": 2590,
      "y": 982,
      "width": 430,
      "height": 32.5,
      "fontSize": 26,
      "text": "返回，框架继续推进流程",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "返回，框架继续推进流程"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300016,
      "version": 2,
      "versionNonce": 300516,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "engine_title",
      "type": "text",
      "x": 1760,
      "y": 1080,
      "width": 1370,
      "height": 42.5,
      "fontSize": 34,
      "text": "引擎 Engine：提供某一领域的运行能力",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "引擎 Engine：提供某一领域的运行能力"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 300017,
      "version": 2,
      "versionNonce": 300517,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "engine_detail",
      "type": "text",
      "x": 1760,
      "y": 1143,
      "width": 1350,
      "height": 70,
      "fontSize": 28,
      "text": "游戏引擎可同时提供渲染、物理、音频与游戏生命周期。\n一个引擎可以包含库、框架式机制，并配套编辑器与开发工具。",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "游戏引擎可同时提供渲染、物理、音频与游戏生命周期。\n一个引擎可以包含库、框架式机制，并配套编辑器与开发工具。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400000,
      "version": 2,
      "versionNonce": 400500,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "build_heading",
      "type": "text",
      "x": 4210,
      "y": 270,
      "width": 1340,
      "height": 55,
      "fontSize": 44,
      "text": "代码形式、构建与装载",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "代码形式、构建与装载"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400001,
      "version": 2,
      "versionNonce": 400501,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "native_source",
      "type": "text",
      "x": 4210,
      "y": 400,
      "width": 390,
      "height": 77.5,
      "fontSize": 31,
      "text": "本机编译的源码\n例如 .c / .cpp",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "本机编译的源码\n例如 .c / .cpp"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400002,
      "version": 2,
      "versionNonce": 400502,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "compiler",
      "type": "text",
      "x": 4690,
      "y": 407,
      "width": 260,
      "height": 82.5,
      "fontSize": 33,
      "text": "编译器\n检查 / 转换代码",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "编译器\n检查 / 转换代码"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400003,
      "version": 2,
      "versionNonce": 400503,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "object_files",
      "type": "text",
      "x": 5200,
      "y": 400,
      "width": 380,
      "height": 77.5,
      "fontSize": 31,
      "text": "目标文件\n.o / .obj",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "目标文件\n.o / .obj"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400006,
      "version": 2,
      "versionNonce": 400506,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "static_library",
      "type": "text",
      "x": 4210,
      "y": 700,
      "width": 415,
      "height": 116.25,
      "fontSize": 31,
      "text": "原生静态库\n.a / 部分 .lib\n存放可参与链接的目标代码",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "原生静态库\n.a / 部分 .lib\n存放可参与链接的目标代码"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400007,
      "version": 2,
      "versionNonce": 400507,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "linker",
      "type": "text",
      "x": 4690,
      "y": 695,
      "width": 300,
      "height": 123.75,
      "fontSize": 33,
      "text": "链接器\n选取 / 组合代码\n解析符号引用",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "链接器\n选取 / 组合代码\n解析符号引用"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400009,
      "version": 2,
      "versionNonce": 400509,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "object_link_label",
      "type": "text",
      "x": 4900,
      "y": 603,
      "width": 380,
      "height": 32.5,
      "fontSize": 26,
      "text": "参与链接",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "参与链接"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400011,
      "version": 2,
      "versionNonce": 400511,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "native_artifact",
      "type": "text",
      "x": 5200,
      "y": 700,
      "width": 430,
      "height": 116.25,
      "fontSize": 31,
      "text": "程序 / 原生动态库\n.exe / ELF 可执行文件\n.dll / .so / .dylib",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "程序 / 原生动态库\n.exe / ELF 可执行文件\n.dll / .so / .dylib"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400013,
      "version": 2,
      "versionNonce": 400513,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "native_artifact_note",
      "type": "text",
      "x": 4210,
      "y": 887,
      "width": 1080,
      "height": 67.5,
      "fontSize": 27,
      "text": "静态库的相关代码并入产物；原生动态库在启动时或运行中装载。\n构建工具 / 编译器 / 链接器自身也是正在运行的软件。",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "静态库的相关代码并入产物；原生动态库在启动时或运行中装载。\n构建工具 / 编译器 / 链接器自身也是正在运行的软件。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400014,
      "version": 2,
      "versionNonce": 400514,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "script_artifacts",
      "type": "text",
      "x": 4210,
      "y": 1030,
      "width": 620,
      "height": 77.5,
      "fontSize": 31,
      "text": "脚本 / 字节码 / 中间表示\n.js / .py / .pyc / .class / IL",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "脚本 / 字节码 / 中间表示\n.js / .py / .pyc / .class / IL"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400015,
      "version": 2,
      "versionNonce": 400515,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "script_loader",
      "type": "text",
      "x": 4980,
      "y": 1030,
      "width": 560,
      "height": 77.5,
      "fontSize": 31,
      "text": "对应语言运行时加载、处理\n解释 / JIT 等，取决于实现",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "对应语言运行时加载、处理\n解释 / JIT 等，取决于实现"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 400017,
      "version": 2,
      "versionNonce": 400517,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "build_note",
      "type": "text",
      "x": 4210,
      "y": 1180,
      "width": 1370,
      "height": 62.5,
      "fontSize": 25,
      "text": "同一语言可有不同编译路径，图示为常见路线；程序可混用本机与托管代码。\n后缀只是线索：.lib 也可能是导入库，.dll 也可能是 .NET 程序集。",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "同一语言可有不同编译路径，图示为常见路线；程序可混用本机与托管代码。\n后缀只是线索：.lib 也可能是导入库，.dll 也可能是 .NET 程序集。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 500000,
      "version": 2,
      "versionNonce": 500500,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "origins_heading",
      "type": "text",
      "x": 150,
      "y": 1610,
      "width": 1190,
      "height": 55,
      "fontSize": 44,
      "text": "来源、模块与依赖",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "来源、模块与依赖"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 500001,
      "version": 2,
      "versionNonce": 500501,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "own_code",
      "type": "text",
      "x": 190,
      "y": 1745,
      "width": 480,
      "height": 82.5,
      "fontSize": 33,
      "text": "你 / 你的团队写的代码\n也可以做成库、框架或 SDK",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "你 / 你的团队写的代码\n也可以做成库、框架或 SDK"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 500002,
      "version": 2,
      "versionNonce": 500502,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "third_code",
      "type": "text",
      "x": 190,
      "y": 1940,
      "width": 490,
      "height": 82.5,
      "fontSize": 33,
      "text": "第三方写的代码\n也可能是完整程序或服务端",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "第三方写的代码\n也可能是完整程序或服务端"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 500003,
      "version": 2,
      "versionNonce": 500503,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "module_assembly",
      "type": "text",
      "x": 890,
      "y": 1835,
      "width": 450,
      "height": 170,
      "fontSize": 34,
      "text": "应用工程\n模块 / 依赖 / 配置 / 资源\n按职责组合\n明确使用接口",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "应用工程\n模块 / 依赖 / 配置 / 资源\n按职责组合\n明确使用接口"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#ffffff",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 500007,
      "version": 2,
      "versionNonce": 500507,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "import_code",
      "type": "text",
      "x": 195,
      "y": 2140,
      "width": 1100,
      "height": 140,
      "fontSize": 28,
      "text": "import { useState } from \"react\";\nimport { createAgentSession }\n  from \"@earendil-works/pi-coding-agent\";\n// import 获取模块导出；不决定它属于哪种软件角色",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "import { useState } from \"react\";\nimport { createAgentSession }\n  from \"@earendil-works/pi-coding-agent\";\n// import 获取模块导出；不决定它属于哪种软件角色"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 500008,
      "version": 2,
      "versionNonce": 500508,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "origins_note",
      "type": "text",
      "x": 160,
      "y": 2360,
      "width": 1170,
      "height": 70,
      "fontSize": 28,
      "text": "源码文件不天然就是库；包也不一定只装一种能力。\n来源、文件格式、软件角色和运行位置是不同维度。",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "源码文件不天然就是库；包也不一定只装一种能力。\n来源、文件格式、软件角色和运行位置是不同维度。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600000,
      "version": 2,
      "versionNonce": 600500,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "examples_heading",
      "type": "text",
      "x": 5900,
      "y": 270,
      "width": 1210,
      "height": 53.75,
      "fontSize": 43,
      "text": "熟悉的产品：同一对象，多种标签",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "熟悉的产品：同一对象，多种标签"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600001,
      "version": 2,
      "versionNonce": 600501,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "example_react",
      "type": "text",
      "x": 5935,
      "y": 410,
      "width": 480,
      "height": 127.5,
      "fontSize": 34,
      "text": "React\nUI 库\n组件与渲染机制",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "React\nUI 库\n组件与渲染机制"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600002,
      "version": 2,
      "versionNonce": 600502,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "example_next",
      "type": "text",
      "x": 6615,
      "y": 410,
      "width": 485,
      "height": 127.5,
      "fontSize": 34,
      "text": "Next.js\nWeb 应用框架\n路由、服务端渲染、构建",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "Next.js\nWeb 应用框架\n路由、服务端渲染、构建"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600004,
      "version": 2,
      "versionNonce": 600504,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "next_react_label",
      "type": "text",
      "x": 6355,
      "y": 390,
      "width": 235,
      "height": 31.25,
      "fontSize": 25,
      "text": "基于 / 组合",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "基于 / 组合"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600005,
      "version": 2,
      "versionNonce": 600505,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "example_pi",
      "type": "text",
      "x": 5920,
      "y": 610,
      "width": 1150,
      "height": 43.75,
      "fontSize": 35,
      "text": "Pi：SDK 接口与内部执行机制",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "Pi：SDK 接口与内部执行机制"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600006,
      "version": 2,
      "versionNonce": 600506,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "pi_session",
      "type": "text",
      "x": 6015,
      "y": 705,
      "width": 1090,
      "height": 75,
      "fontSize": 30,
      "text": "你的应用 → SDK API / AgentSession\ncreateAgentSession() · prompt() · subscribe()",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "你的应用 → SDK API / AgentSession\ncreateAgentSession() · prompt() · subscribe()"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600007,
      "version": 2,
      "versionNonce": 600507,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "pi_core",
      "type": "text",
      "x": 6015,
      "y": 835,
      "width": 1090,
      "height": 75,
      "fontSize": 30,
      "text": "pi-agent-core：Agent 循环、工具执行与事件\n流程在运行中调用你注册的工具或监听函数",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "pi-agent-core：Agent 循环、工具执行与事件\n流程在运行中调用你注册的工具或监听函数"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600008,
      "version": 2,
      "versionNonce": 600508,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "pi_ai",
      "type": "text",
      "x": 6015,
      "y": 965,
      "width": 1090,
      "height": 75,
      "fontSize": 30,
      "text": "pi-ai：模型访问能力\n网络请求通往另一运行边界中的模型服务",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "pi-ai：模型访问能力\n网络请求通往另一运行边界中的模型服务"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600011,
      "version": 2,
      "versionNonce": 600511,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "unity_example",
      "type": "text",
      "x": 5920,
      "y": 1140,
      "width": 1170,
      "height": 46.25,
      "fontSize": 37,
      "text": "Unity / Unreal Engine",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "Unity / Unreal Engine"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 600012,
      "version": 2,
      "versionNonce": 600512,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "unity_detail",
      "type": "text",
      "x": 5920,
      "y": 1210,
      "width": 1190,
      "height": 112.5,
      "fontSize": 30,
      "text": "游戏引擎：渲染 / 物理 / 音频等领域能力\n框架式生命周期：Unity Update() / UE Tick()\n编辑器和配套工具帮助你开发、调试与构建",
      "startBinding": null,
      "endBinding": null,
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "游戏引擎：渲染 / 物理 / 音频等领域能力\n框架式生命周期：Unity Update() / UE Tick()\n编辑器和配套工具帮助你开发、调试与构建"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700000,
      "version": 2,
      "versionNonce": 700500,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "runtime_heading",
      "type": "text",
      "x": 3100,
      "y": 1530,
      "width": 3000,
      "height": 66.25,
      "fontSize": 53,
      "text": "运行：代码与状态属于进程，执行由线程承载",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "运行：代码与状态属于进程，执行由线程承载"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700002,
      "version": 2,
      "versionNonce": 700502,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "process_p_title",
      "type": "text",
      "x": 3170,
      "y": 1700,
      "width": 2220,
      "height": 53.75,
      "fontSize": 43,
      "text": "进程 P  /  独立地址空间与资源边界",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "进程 P  /  独立地址空间与资源边界"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700004,
      "version": 2,
      "versionNonce": 700504,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s6_p_memory",
      "type": "text",
      "x": 3220,
      "y": 1835,
      "width": 1270,
      "height": 116.25,
      "fontSize": 31,
      "text": "共享代码 / 堆中数据 / 资源的引用\n业务、库、框架和引擎的代码；任务表、计数与事件订阅表\n多个线程访问相关状态，须遵守同一同步规则",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "共享代码 / 堆中数据 / 资源的引用\n业务、库、框架和引擎的代码；任务表、计数与事件订阅表\n多个线程访问相关状态，须遵守同一同步规则"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700006,
      "version": 2,
      "versionNonce": 700506,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "runtime_inner_title",
      "type": "text",
      "x": 4680,
      "y": 1825,
      "width": 805,
      "height": 40,
      "fontSize": 32,
      "text": "语言运行时（按需存在）",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "语言运行时（按需存在）"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700007,
      "version": 2,
      "versionNonce": 700507,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "runtime_inner_detail",
      "type": "text",
      "x": 4680,
      "y": 1877,
      "width": 800,
      "height": 101.25,
      "fontSize": 27,
      "text": "V8 / CPython / .NET：解释、JIT、内存管理等\n运行时自身也由本机代码实现\n业务 / 框架 / 运行时不是三个操作系统层",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "V8 / CPython / .NET：解释、JIT、内存管理等\n运行时自身也由本机代码实现\n业务 / 框架 / 运行时不是三个操作系统层"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700008,
      "version": 2,
      "versionNonce": 700508,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "event_area_title",
      "type": "text",
      "x": 3200,
      "y": 2040,
      "width": 2210,
      "height": 42.5,
      "fontSize": 34,
      "text": "组件如何协作：先分清事件含义、订阅名单与响应规则",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "组件如何协作：先分清事件含义、订阅名单与响应规则"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700009,
      "version": 2,
      "versionNonce": 700509,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "local-business",
      "type": "text",
      "x": 3220,
      "y": 2150,
      "width": 585,
      "height": 116.25,
      "fontSize": 31,
      "text": "业务源\n拥有战斗状态，确认并报告事实\n例如 enemyDefeated",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "业务源\n拥有战斗状态，确认并报告事实\n例如 enemyDefeated"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700011,
      "version": 2,
      "versionNonce": 700511,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "local-publish-label",
      "type": "text",
      "x": 3820,
      "y": 2150,
      "width": 195,
      "height": 31.25,
      "fontSize": 25,
      "text": "emit 发布",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "emit 发布"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700012,
      "version": 2,
      "versionNonce": 700512,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "local-subscriptions",
      "type": "text",
      "x": 4060,
      "y": 2145,
      "width": 610,
      "height": 116.25,
      "fontSize": 31,
      "text": "订阅与分发实现\non 保存函数引用\nemit 查找对应名单并调用",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "订阅与分发实现\non 保存函数引用\nemit 查找对应名单并调用"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700014,
      "version": 2,
      "versionNonce": 700514,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "local-call-label",
      "type": "text",
      "x": 4680,
      "y": 2150,
      "width": 185,
      "height": 31.25,
      "fontSize": 25,
      "text": "传入事件",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "传入事件"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700015,
      "version": 2,
      "versionNonce": 700515,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "local-handler",
      "type": "text",
      "x": 4930,
      "y": 2145,
      "width": 530,
      "height": 116.25,
      "fontSize": 31,
      "text": "处理函数\n任务 / 统计各自拥有响应规则\n仍是此进程里的代码",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "处理函数\n任务 / 统计各自拥有响应规则\n仍是此进程里的代码"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700017,
      "version": 2,
      "versionNonce": 700517,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "local-record",
      "type": "text",
      "x": 3240,
      "y": 2345,
      "width": 570,
      "height": 140,
      "fontSize": 28,
      "text": "事件记录（数据，不是执行者）\ntype: enemyDefeated\nenemyId: 7    kind: slime\n共同约定：发生条件、类型与字段",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "事件记录（数据，不是执行者）\ntype: enemyDefeated\nenemyId: 7    kind: slime\n共同约定：发生条件、类型与字段"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700019,
      "version": 2,
      "versionNonce": 700519,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "subscription_table_text",
      "type": "text",
      "x": 4090,
      "y": 2345,
      "width": 1300,
      "height": 105,
      "fontSize": 28,
      "text": "订阅表：enemyDefeated → [更新任务, 增加统计]\n观察者：源保存名单；事件总线：共享组件保存名单\n名单决定接收者，不决定执行时机",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "订阅表：enemyDefeated → [更新任务, 增加统计]\n观察者：源保存名单；事件总线：共享组件保存名单\n名单决定接收者，不决定执行时机"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700020,
      "version": 2,
      "versionNonce": 700520,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "schedule-title",
      "type": "text",
      "x": 3200,
      "y": 2585,
      "width": 870,
      "height": 42.5,
      "fontSize": 34,
      "text": "执行时机由实现选择",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "执行时机由实现选择"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700021,
      "version": 2,
      "versionNonce": 700521,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "schedule-sync",
      "type": "text",
      "x": 3200,
      "y": 2650,
      "width": 670,
      "height": 75,
      "fontSize": 30,
      "text": "同步分发：发布方当场调用处理函数\n例如 Node.js EventEmitter.emit",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "同步分发：发布方当场调用处理函数\n例如 Node.js EventEmitter.emit"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700022,
      "version": 2,
      "versionNonce": 700522,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "queue_note",
      "type": "text",
      "x": 4050,
      "y": 2510,
      "width": 1390,
      "height": 36.25,
      "fontSize": 29,
      "text": "若选择排队：先保存记录，之后才安排处理",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "若选择排队：先保存记录，之后才安排处理"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700027,
      "version": 2,
      "versionNonce": 700527,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "queue_slot_text",
      "type": "text",
      "x": 4100,
      "y": 2605,
      "width": 180,
      "height": 33.75,
      "fontSize": 27,
      "text": "事件 7",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "事件 7"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700028,
      "version": 2,
      "versionNonce": 700528,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "queue_slot2_text",
      "type": "text",
      "x": 4360,
      "y": 2605,
      "width": 180,
      "height": 33.75,
      "fontSize": 27,
      "text": "事件 8",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "事件 8"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700029,
      "version": 2,
      "versionNonce": 700529,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "queue_slot3_text",
      "type": "text",
      "x": 4670,
      "y": 2605,
      "width": 80,
      "height": 33.75,
      "fontSize": 27,
      "text": "…",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "…"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700031,
      "version": 2,
      "versionNonce": 700531,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "schedule-host",
      "type": "text",
      "x": 5070,
      "y": 2555,
      "width": 420,
      "height": 135,
      "fontSize": 27,
      "text": "取出并安排执行\n应用 flushEvents\n或宿主事件循环\n队列不是线程",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "取出并安排执行\n应用 flushEvents\n或宿主事件循环\n队列不是线程"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700032,
      "version": 2,
      "versionNonce": 700532,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_a",
      "type": "text",
      "x": 3200,
      "y": 2810,
      "width": 510,
      "height": 77.5,
      "fontSize": 31,
      "text": "线程 A\n自己的栈与执行上下文",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "线程 A\n自己的栈与执行上下文"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700037,
      "version": 2,
      "versionNonce": 700537,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_a_step1",
      "type": "text",
      "x": 3800,
      "y": 2810,
      "width": 420,
      "height": 35,
      "fontSize": 28,
      "text": "调用 emit",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "调用 emit"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700038,
      "version": 2,
      "versionNonce": 700538,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_a_step2",
      "type": "text",
      "x": 4290,
      "y": 2810,
      "width": 620,
      "height": 35,
      "fontSize": 28,
      "text": "同步调用处理函数",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "同步调用处理函数"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700039,
      "version": 2,
      "versionNonce": 700539,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_a_step3",
      "type": "text",
      "x": 5000,
      "y": 2810,
      "width": 440,
      "height": 35,
      "fontSize": 28,
      "text": "返回，继续执行",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "返回，继续执行"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700040,
      "version": 2,
      "versionNonce": 700540,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_b",
      "type": "text",
      "x": 3200,
      "y": 2990,
      "width": 550,
      "height": 77.5,
      "fontSize": 31,
      "text": "线程 B（可选）\n另一套栈与执行上下文",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "线程 B（可选）\n另一套栈与执行上下文"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700042,
      "version": 2,
      "versionNonce": 700542,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "thread_b_step",
      "type": "text",
      "x": 3890,
      "y": 2990,
      "width": 1470,
      "height": 35,
      "fontSize": 28,
      "text": "处理另一项任务；也可能由实现安排处理队列中的记录",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "处理另一项任务；也可能由实现安排处理队列中的记录"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700043,
      "version": 2,
      "versionNonce": 700543,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "runtime_dispatch",
      "type": "text",
      "x": 3200,
      "y": 3140,
      "width": 2250,
      "height": 70,
      "fontSize": 28,
      "text": "轨迹表示局部调用顺序，不承诺两个线程同时执行。CPU 执行机器指令。\n普通计算和进程内回调无需每一步都进入内核；事件驱动也不自动建立线程。",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "轨迹表示局部调用顺序，不承诺两个线程同时执行。CPU 执行机器指令。\n普通计算和进程内回调无需每一步都进入内核；事件驱动也不自动建立线程。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700046,
      "version": 2,
      "versionNonce": 700546,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "distributed-broker-label",
      "type": "text",
      "x": 5890,
      "y": 2190,
      "width": 410,
      "height": 155,
      "fontSize": 31,
      "text": "消息代理进程\n维护订阅与路由\n转发事件数据\n一种可选部署方式",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "消息代理进程\n维护订阅与路由\n转发事件数据\n一种可选部署方式"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700049,
      "version": 2,
      "versionNonce": 700549,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "distributed-send-label",
      "type": "text",
      "x": 5630,
      "y": 2240,
      "width": 200,
      "height": 97.5,
      "fontSize": 26,
      "text": "编码事件\n发送数据\n不发送函数",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "编码事件\n发送数据\n不发送函数"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700051,
      "version": 2,
      "versionNonce": 700551,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "remote_process_title",
      "type": "text",
      "x": 6560,
      "y": 1710,
      "width": 630,
      "height": 100,
      "fontSize": 40,
      "text": "进程 Q\n另一地址空间",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "进程 Q\n另一地址空间"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700053,
      "version": 2,
      "versionNonce": 700553,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "remote_process_detail",
      "type": "text",
      "x": 6600,
      "y": 1920,
      "width": 530,
      "height": 112.5,
      "fontSize": 30,
      "text": "自己的代码与状态\n例如统计状态、完成计数\n普通变量不自动共用",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "自己的代码与状态\n例如统计状态、完成计数\n普通变量不自动共用"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700056,
      "version": 2,
      "versionNonce": 700556,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "distributed-consumer-label",
      "type": "text",
      "x": 6570,
      "y": 2200,
      "width": 590,
      "height": 155,
      "fontSize": 31,
      "text": "接收端与处理代码\n接收 → 解析事件字段\n再调用自己的本地函数\n业务完成另行确认",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "接收端与处理代码\n接收 → 解析事件字段\n再调用自己的本地函数\n业务完成另行确认"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700057,
      "version": 2,
      "versionNonce": 700557,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s6_thread_q",
      "type": "text",
      "x": 6570,
      "y": 2790,
      "width": 590,
      "height": 116.25,
      "fontSize": 31,
      "text": "线程 C\n自己的栈与执行上下文\n执行 Q 中的代码",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "线程 C\n自己的栈与执行上下文\n执行 Q 中的代码"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700059,
      "version": 2,
      "versionNonce": 700559,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "broker_caveat",
      "type": "text",
      "x": 5800,
      "y": 2710,
      "width": 660,
      "height": 168.75,
      "fontSize": 27,
      "text": "投递保证依产品与配置\n可加 eventId 供追踪、去重\n投递成功 ≠ 业务完成\n消息设施自身也是运行中的软件\nSDK 可提供访问这些服务的客户端",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "投递保证依产品与配置\n可加 eventId 供追踪、去重\n投递成功 ≠ 业务完成\n消息设施自身也是运行中的软件\nSDK 可提供访问这些服务的客户端"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700061,
      "version": 2,
      "versionNonce": 700561,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s6_ipc_label",
      "type": "text",
      "x": 5590,
      "y": 3350,
      "width": 1170,
      "height": 72.5,
      "fontSize": 29,
      "text": "也可直接协作：同机用管道 / Socket / 显式共享内存等\n远程通过网络；共享内存仍须同步，不是普通变量直通",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "也可直接协作：同机用管道 / Socket / 显式共享内存等\n远程通过网络；共享内存仍须同步，不是普通变量直通"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 700062,
      "version": 2,
      "versionNonce": 700562,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "distributed-title",
      "type": "text",
      "x": 5840,
      "y": 3070,
      "width": 610,
      "height": 120,
      "fontSize": 32,
      "text": "跨过边界的是数据\n每个进程保留自己的函数\n与独立执行资源",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "跨过边界的是数据\n每个进程保留自己的函数\n与独立执行资源"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800000,
      "version": 2,
      "versionNonce": 800500,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_heading",
      "type": "text",
      "x": 140,
      "y": 2990,
      "width": 2690,
      "height": 61.25,
      "fontSize": 49,
      "text": "具体实现：浏览器中的调用、等待与调度",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "具体实现：浏览器中的调用、等待与调度"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#786F64",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800001,
      "version": 2,
      "versionNonce": 800501,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_context",
      "type": "text",
      "x": 150,
      "y": 3075,
      "width": 2660,
      "height": 72.5,
      "fontSize": 29,
      "text": "这是同一软件体系中的宿主职责展开，不是一条请求时间轴。\n宿主可跨多个进程实现；API 返回约定、执行资源与网络能力分别看。",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "这是同一软件体系中的宿主职责展开，不是一条请求时间轴。\n宿主可跨多个进程实现；API 返回约定、执行资源与网络能力分别看。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#9A5A12",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800002,
      "version": 2,
      "versionNonce": 800502,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_app_title",
      "type": "text",
      "x": 170,
      "y": 3240,
      "width": 850,
      "height": 45,
      "fontSize": 36,
      "text": "应用接口：何时返回，怎样取得结果",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "应用接口：何时返回，怎样取得结果"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800005,
      "version": 2,
      "versionNonce": 800505,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_sync",
      "type": "text",
      "x": 270,
      "y": 3310,
      "width": 820,
      "height": 80,
      "fontSize": 32,
      "text": "同步：本次调用内完成选定操作\n返回前，调用者的后续代码不会继续",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "同步：本次调用内完成选定操作\n返回前，调用者的后续代码不会继续"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800006,
      "version": 2,
      "versionNonce": 800506,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_async",
      "type": "text",
      "x": 270,
      "y": 3480,
      "width": 825,
      "height": 160,
      "fontSize": 32,
      "text": "异步：返回与完成分离\nPromise 表达操作的结果\nawait 挂起依赖它的续段\nasync / await 本身不建立线程",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "异步：返回与完成分离\nPromise 表达操作的结果\nawait 挂起依赖它的续段\nasync / await 本身不建立线程"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#FAF7F0",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800008,
      "version": 2,
      "versionNonce": 800508,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_code_text",
      "type": "text",
      "x": 1320,
      "y": 3290,
      "width": 1230,
      "height": 160,
      "fontSize": 32,
      "text": "await fetch(\"/api/profile\")\n\nfetch：提交请求，返回 Promise\nawait：保存依赖结果的后续执行",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "await fetch(\"/api/profile\")\n\nfetch：提交请求，返回 Promise\nawait：保存依赖结果的后续执行"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800010,
      "version": 2,
      "versionNonce": 800510,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "promise_record_text",
      "type": "text",
      "x": 1310,
      "y": 3580,
      "width": 480,
      "height": 37.5,
      "fontSize": 30,
      "text": "Promise 结果状态",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "Promise 结果状态"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800012,
      "version": 2,
      "versionNonce": 800512,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "promise_state_text",
      "type": "text",
      "x": 2070,
      "y": 3540,
      "width": 570,
      "height": 105,
      "fontSize": 28,
      "text": "pending → fulfilled / rejected\n状态变化使相关续段可调度\n状态对象不是后台工作线程",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "pending → fulfilled / rejected\n状态变化使相关续段可调度\n状态对象不是后台工作线程"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800014,
      "version": 2,
      "versionNonce": 800514,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_dependency_label",
      "type": "text",
      "x": 760,
      "y": 3695,
      "width": 1550,
      "height": 37.5,
      "fontSize": 30,
      "text": "后续执行依赖宿主提供 API、调度机制与执行支持",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "后续执行依赖宿主提供 API、调度机制与执行支持"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800016,
      "version": 2,
      "versionNonce": 800516,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_host_title",
      "type": "text",
      "x": 200,
      "y": 3860,
      "width": 2370,
      "height": 43.75,
      "fontSize": 35,
      "text": "浏览器宿主能力  /  虚线表示职责范围，不代表单个进程",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "浏览器宿主能力  /  虚线表示职责范围，不代表单个进程"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800017,
      "version": 2,
      "versionNonce": 800517,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_loop",
      "type": "text",
      "x": 210,
      "y": 3970,
      "width": 750,
      "height": 77.5,
      "fontSize": 31,
      "text": "页面事件循环 / 微任务机制\n安排已可执行的回调与续段",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "页面事件循环 / 微任务机制\n安排已可执行的回调与续段"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800021,
      "version": 2,
      "versionNonce": 800521,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "microtask_text",
      "type": "text",
      "x": 255,
      "y": 4140,
      "width": 120,
      "height": 31.25,
      "fontSize": 25,
      "text": "续段",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "续段"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800022,
      "version": 2,
      "versionNonce": 800522,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "microtask2_text",
      "type": "text",
      "x": 440,
      "y": 4140,
      "width": 120,
      "height": 31.25,
      "fontSize": 25,
      "text": "回调",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "回调"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800023,
      "version": 2,
      "versionNonce": 800523,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "microtask3_text",
      "type": "text",
      "x": 645,
      "y": 4140,
      "width": 80,
      "height": 31.25,
      "fontSize": 25,
      "text": "…",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "…"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800025,
      "version": 2,
      "versionNonce": 800525,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_schedule_label",
      "type": "text",
      "x": 810,
      "y": 4080,
      "width": 330,
      "height": 33.75,
      "fontSize": 27,
      "text": "到运行机会时调用",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "到运行机会时调用"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800026,
      "version": 2,
      "versionNonce": 800526,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_thread",
      "type": "text",
      "x": 1150,
      "y": 3970,
      "width": 720,
      "height": 116.25,
      "fontSize": 31,
      "text": "页面主线程\n业务 JavaScript 逐段执行\n长计算仍会占用它",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "页面主线程\n业务 JavaScript 逐段执行\n长计算仍会占用它"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800031,
      "version": 2,
      "versionNonce": 800531,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_worker_label",
      "type": "text",
      "x": 2005,
      "y": 4020,
      "width": 550,
      "height": 300,
      "fontSize": 30,
      "text": "可选：Web Worker\n\n独立执行环境与线程\n通过消息与页面交换数据\n\n是否真正并行\n仍取决于资源与调度\n仅写 async 不会创建它",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "可选：Web Worker\n\n独立执行环境与线程\n通过消息与页面交换数据\n\n是否真正并行\n仍取决于资源与调度\n仅写 async 不会创建它"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800033,
      "version": 2,
      "versionNonce": 800533,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_worker_message_label",
      "type": "text",
      "x": 1815,
      "y": 4090,
      "width": 125,
      "height": 65,
      "fontSize": 26,
      "text": "消息\n交换",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "消息\n交换"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800034,
      "version": 2,
      "versionNonce": 800534,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_network",
      "type": "text",
      "x": 210,
      "y": 4420,
      "width": 930,
      "height": 116.25,
      "fontSize": 31,
      "text": "宿主网络能力\n管理请求与响应数据\n完成后衔接 Promise 的完成处理",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "宿主网络能力\n管理请求与响应数据\n完成后衔接 Promise 的完成处理"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800036,
      "version": 2,
      "versionNonce": 800536,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_ready_label",
      "type": "text",
      "x": 600,
      "y": 4300,
      "width": 620,
      "height": 35,
      "fontSize": 28,
      "text": "完成后使续段可调度",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "完成后使续段可调度"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800037,
      "version": 2,
      "versionNonce": 800537,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s5_os_text",
      "type": "text",
      "x": 210,
      "y": 4630,
      "width": 2300,
      "height": 72.5,
      "fontSize": 29,
      "text": "阻塞 / 非阻塞要落实到具体调用与线程；网络对端是另一运行边界。\n并发看多项工作共同推进；并行看同一时刻执行。两者都不是 async 关键字的别名。",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "阻塞 / 非阻塞要落实到具体调用与线程；网络对端是另一运行边界。\n并发看多项工作共同推进；并行看同一时刻执行。两者都不是 async 关键字的别名。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 800039,
      "version": 2,
      "versionNonce": 800539,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "browser_os_link_label",
      "type": "text",
      "x": 2710,
      "y": 4180,
      "width": 350,
      "height": 140,
      "fontSize": 28,
      "text": "网络实现通过\n系统接口使用\n操作系统能力\n→ 右侧统一系统区",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "网络实现通过\n系统接口使用\n操作系统能力\n→ 右侧统一系统区"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900000,
      "version": 2,
      "versionNonce": 900500,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "system_heading",
      "type": "text",
      "x": 3190,
      "y": 3820,
      "width": 3880,
      "height": 61.25,
      "fontSize": 49,
      "text": "操作系统内核 · 提供通信、资源管理与线程调度",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "操作系统内核 · 提供通信、资源管理与线程调度"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900002,
      "version": 2,
      "versionNonce": 900502,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "kernel_title",
      "type": "text",
      "x": 3190,
      "y": 4160,
      "width": 3880,
      "height": 35,
      "fontSize": 28,
      "text": "内核态：执行权限与用户态不同；内核代码同样由 CPU 执行。",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "内核态：执行权限与用户态不同；内核代码同样由 CPU 执行。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#403D39",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900003,
      "version": 2,
      "versionNonce": 900503,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "kernel_services",
      "type": "text",
      "x": 3200,
      "y": 3930,
      "width": 1700,
      "height": 165,
      "fontSize": 33,
      "text": "系统服务\n文件、网络、地址空间与设备管理\n应用通常经运行库 / 系统 API 申请服务\n例如 Linux 的 read 系统调用",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "系统服务\n文件、网络、地址空间与设备管理\n应用通常经运行库 / 系统 API 申请服务\n例如 Linux 的 read 系统调用"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900004,
      "version": 2,
      "versionNonce": 900504,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "kernel_scheduler",
      "type": "text",
      "x": 5120,
      "y": 3930,
      "width": 1910,
      "height": 165,
      "fontSize": 33,
      "text": "调度与执行资源\n从就绪线程中选择执行者，分配 CPU 执行时间\n阻塞线程先变为就绪；上下文切换保存 / 恢复进度\n线程不永久占有某个核心",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "调度与执行资源\n从就绪线程中选择执行者，分配 CPU 执行时间\n阻塞线程先变为就绪；上下文切换保存 / 恢复进度\n线程不永久占有某个核心"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900006,
      "version": 2,
      "versionNonce": 900506,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s6_schedule_p_label",
      "type": "text",
      "x": 3990,
      "y": 3420,
      "width": 1170,
      "height": 116.25,
      "fontSize": 31,
      "text": "调度其中的就绪线程\n事件循环安排应用层工作；内核安排线程运行\n这两种调度的对象不同",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "调度其中的就绪线程\n事件循环安排应用层工作；内核安排线程运行\n这两种调度的对象不同"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900009,
      "version": 2,
      "versionNonce": 900509,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "syscall_text",
      "type": "text",
      "x": 3160,
      "y": 3585,
      "width": 240,
      "height": 37.5,
      "fontSize": 30,
      "text": "系统调用",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "系统调用"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900011,
      "version": 2,
      "versionNonce": 900511,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "system_api_label",
      "type": "text",
      "x": 3330,
      "y": 3360,
      "width": 490,
      "height": 105,
      "fontSize": 28,
      "text": "需要系统服务时进入\n调用返回后继续用户代码\n普通计算不必每步进入内核",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "需要系统服务时进入\n调用返回后继续用户代码\n普通计算不必每步进入内核"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900013,
      "version": 2,
      "versionNonce": 900513,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "s6_schedule_q_label",
      "type": "text",
      "x": 7040,
      "y": 3370,
      "width": 210,
      "height": 140,
      "fontSize": 28,
      "text": "另一进程\n的线程\n也参加\n系统调度",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "另一进程\n的线程\n也参加\n系统调度"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900015,
      "version": 2,
      "versionNonce": 900515,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "communication_system_label",
      "type": "text",
      "x": 5590,
      "y": 3680,
      "width": 1310,
      "height": 36.25,
      "fontSize": 29,
      "text": "通信实现依赖系统服务；远端主机也有自己的操作系统",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "通信实现依赖系统服务；远端主机也有自己的操作系统"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900017,
      "version": 2,
      "versionNonce": 900517,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "kernel_cpu_label",
      "type": "text",
      "x": 4500,
      "y": 4280,
      "width": 1260,
      "height": 37.5,
      "fontSize": 30,
      "text": "调度器把就绪线程放到可用逻辑处理器上",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "调度器把就绪线程放到可用逻辑处理器上"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900019,
      "version": 2,
      "versionNonce": 900519,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_title",
      "type": "text",
      "x": 3200,
      "y": 4420,
      "width": 2220,
      "height": 50,
      "fontSize": 40,
      "text": "CPU：实际执行机器指令的硬件",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "CPU：实际执行机器指令的硬件"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900020,
      "version": 2,
      "versionNonce": 900520,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_lane1_label",
      "type": "text",
      "x": 3200,
      "y": 4545,
      "width": 530,
      "height": 37.5,
      "fontSize": 30,
      "text": "逻辑处理器 1",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "逻辑处理器 1"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900021,
      "version": 2,
      "versionNonce": 900521,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_lane2_label",
      "type": "text",
      "x": 3200,
      "y": 4670,
      "width": 530,
      "height": 37.5,
      "fontSize": 30,
      "text": "逻辑处理器 2",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "逻辑处理器 2"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900027,
      "version": 2,
      "versionNonce": 900527,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_lane1_text",
      "type": "text",
      "x": 3890,
      "y": 4550,
      "width": 240,
      "height": 36.25,
      "fontSize": 29,
      "text": "线程 A",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "线程 A"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900028,
      "version": 2,
      "versionNonce": 900528,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_lane1_b_text",
      "type": "text",
      "x": 4430,
      "y": 4550,
      "width": 240,
      "height": 36.25,
      "fontSize": 29,
      "text": "线程 B",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "线程 B"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900029,
      "version": 2,
      "versionNonce": 900529,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_lane1_a2_text",
      "type": "text",
      "x": 5050,
      "y": 4550,
      "width": 240,
      "height": 36.25,
      "fontSize": 29,
      "text": "线程 A",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "线程 A"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900030,
      "version": 2,
      "versionNonce": 900530,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_lane2_text",
      "type": "text",
      "x": 4180,
      "y": 4675,
      "width": 240,
      "height": 36.25,
      "fontSize": 29,
      "text": "线程 C",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "线程 C"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900031,
      "version": 2,
      "versionNonce": 900531,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_lane2_b_text",
      "type": "text",
      "x": 5050,
      "y": 4675,
      "width": 240,
      "height": 36.25,
      "fontSize": 29,
      "text": "线程 B",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "线程 B"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900032,
      "version": 2,
      "versionNonce": 900532,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "cpu_detail",
      "type": "text",
      "x": 3160,
      "y": 4860,
      "width": 2460,
      "height": 112.5,
      "fontSize": 30,
      "text": "两行左→右为示意时间：同一位置可交错执行；不同位置可同时执行。\n并发描述多项工作的推进，并行描述同一时刻执行；任务/协程不自动等于新线程。\n用户态与内核态体现执行权限差别；CPU 不直接理解“框架”或“事件”。",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "两行左→右为示意时间：同一位置可交错执行；不同位置可同时执行。\n并发描述多项工作的推进，并行描述同一时刻执行；任务/协程不自动等于新线程。\n用户态与内核态体现执行权限差别；CPU 不直接理解“框架”或“事件”。"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900034,
      "version": 2,
      "versionNonce": 900534,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "kernel_devices_label",
      "type": "text",
      "x": 6580,
      "y": 4270,
      "width": 610,
      "height": 36.25,
      "fontSize": 29,
      "text": "需要时通过驱动控制设备",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "需要时通过驱动控制设备"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900035,
      "version": 2,
      "versionNonce": 900535,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "devices",
      "type": "text",
      "x": 5830,
      "y": 4410,
      "width": 1340,
      "height": 51.25,
      "fontSize": 41,
      "text": "设备完成相应的存储、传输与计算",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "设备完成相应的存储、传输与计算"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#267C6B",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900037,
      "version": 2,
      "versionNonce": 900537,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "device_memory_text",
      "type": "text",
      "x": 5920,
      "y": 4570,
      "width": 260,
      "height": 77.5,
      "fontSize": 31,
      "text": "内存 / 磁盘\n保存数据",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "内存 / 磁盘\n保存数据"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#B95740",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900039,
      "version": 2,
      "versionNonce": 900539,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "device_network_text",
      "type": "text",
      "x": 6390,
      "y": 4570,
      "width": 260,
      "height": 77.5,
      "fontSize": 31,
      "text": "网卡\n传输数据",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "网卡\n传输数据"
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeColor": "#75519E",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 900041,
      "version": 2,
      "versionNonce": 900541,
      "updated": 2,
      "isDeleted": false,
      "boundElements": null,
      "link": null,
      "locked": false,
      "id": "device_gpu_text",
      "type": "text",
      "x": 6860,
      "y": 4570,
      "width": 260,
      "height": 77.5,
      "fontSize": 31,
      "text": "GPU\n并行计算",
      "fontFamily": 3,
      "textAlign": "left",
      "verticalAlign": "top",
      "lineHeight": 1.25,
      "autoResize": true,
      "containerId": null,
      "originalText": "GPU\n并行计算"
    }
  ]
}