{
  "type": "excalidraw",
  "version": 2,
  "source": "https://qishusolution.com",
  "elements": [
    {
      "id": "title",
      "type": "text",
      "x": 300,
      "y": 24,
      "width": 480,
      "height": 40,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1001,
      "version": 1,
      "versionNonce": 1001,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "NIB Printer SDK Architecture",
      "fontSize": 32,
      "fontFamily": 1,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "NIB Printer SDK Architecture",
      "lineHeight": 1.25,
      "baseline": 36
    },
    {
      "id": "subtitle",
      "type": "text",
      "x": 300,
      "y": 66,
      "width": 620,
      "height": 24,
      "angle": 0,
      "strokeColor": "#757575",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1002,
      "version": 1,
      "versionNonce": 1002,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "App code, language editions, core pipeline, command families, transports, and status feedback",
      "fontSize": 18,
      "fontFamily": 1,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "App code, language editions, core pipeline, command families, transports, and status feedback",
      "lineHeight": 1.25,
      "baseline": 20
    },
    {
      "id": "app-zone",
      "type": "rectangle",
      "x": 70,
      "y": 125,
      "width": 1060,
      "height": 105,
      "angle": 0,
      "strokeColor": "#4a9eed",
      "backgroundColor": "#dbe4ff",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 35,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1003,
      "version": 1,
      "versionNonce": 1003,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "app-zone-label",
      "type": "text",
      "x": 90,
      "y": 136,
      "width": 180,
      "height": 25,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1004,
      "version": 1,
      "versionNonce": 1004,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Application Layer",
      "fontSize": 20,
      "fontFamily": 1,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "Application Layer",
      "lineHeight": 1.25,
      "baseline": 22
    },
    {
      "id": "app",
      "type": "rectangle",
      "x": 145,
      "y": 165,
      "width": 220,
      "height": 50,
      "angle": 0,
      "strokeColor": "#4a9eed",
      "backgroundColor": "#a5d8ff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1005,
      "version": 1,
      "versionNonce": 1005,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "app-text",
      "type": "text",
      "x": 174,
      "y": 173,
      "width": 165,
      "height": 36,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1006,
      "version": 1,
      "versionNonce": 1006,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Product App\\nUI + Print Job",
      "fontSize": 16,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "containerId": null,
      "originalText": "Product App\\nUI + Print Job",
      "lineHeight": 1.25,
      "baseline": 35
    },
    {
      "id": "template",
      "type": "rectangle",
      "x": 490,
      "y": 165,
      "width": 220,
      "height": 50,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fff3bf",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1007,
      "version": 1,
      "versionNonce": 1007,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "template-text",
      "type": "text",
      "x": 526,
      "y": 173,
      "width": 150,
      "height": 36,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1008,
      "version": 1,
      "versionNonce": 1008,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Print Template\\nreceipt / label",
      "fontSize": 16,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "containerId": null,
      "originalText": "Print Template\\nreceipt / label",
      "lineHeight": 1.25,
      "baseline": 35
    },
    {
      "id": "session",
      "type": "rectangle",
      "x": 835,
      "y": 165,
      "width": 220,
      "height": 50,
      "angle": 0,
      "strokeColor": "#06b6d4",
      "backgroundColor": "#c3fae8",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1009,
      "version": 1,
      "versionNonce": 1009,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "session-text",
      "type": "text",
      "x": 872,
      "y": 173,
      "width": 146,
      "height": 36,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1010,
      "version": 1,
      "versionNonce": 1010,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Print Session\\nconnect + write + read",
      "fontSize": 16,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "containerId": null,
      "originalText": "Print Session\\nconnect + write + read",
      "lineHeight": 1.25,
      "baseline": 35
    },
    {
      "id": "edition-zone",
      "type": "rectangle",
      "x": 70,
      "y": 270,
      "width": 1060,
      "height": 110,
      "angle": 0,
      "strokeColor": "#8b5cf6",
      "backgroundColor": "#e5dbff",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 35,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1011,
      "version": 1,
      "versionNonce": 1011,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "edition-label",
      "type": "text",
      "x": 90,
      "y": 282,
      "width": 180,
      "height": 25,
      "angle": 0,
      "strokeColor": "#6d28d9",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1012,
      "version": 1,
      "versionNonce": 1012,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Language Editions",
      "fontSize": 20,
      "fontFamily": 1,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "Language Editions",
      "lineHeight": 1.25,
      "baseline": 22
    },
    {
      "id": "editions-text",
      "type": "text",
      "x": 135,
      "y": 325,
      "width": 910,
      "height": 28,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1013,
      "version": 1,
      "versionNonce": 1013,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Dart / Flutter     TypeScript     Java / Android     Objective-C     Swift",
      "fontSize": 22,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "Dart / Flutter     TypeScript     Java / Android     Objective-C     Swift",
      "lineHeight": 1.25,
      "baseline": 25
    },
    {
      "id": "core-zone",
      "type": "rectangle",
      "x": 70,
      "y": 425,
      "width": 1060,
      "height": 220,
      "angle": 0,
      "strokeColor": "#22c55e",
      "backgroundColor": "#d3f9d8",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 35,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1014,
      "version": 1,
      "versionNonce": 1014,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "core-label",
      "type": "text",
      "x": 90,
      "y": 437,
      "width": 290,
      "height": 25,
      "angle": 0,
      "strokeColor": "#15803d",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1015,
      "version": 1,
      "versionNonce": 1015,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Core + Command Construction",
      "fontSize": 20,
      "fontFamily": 1,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "Core + Command Construction",
      "lineHeight": 1.25,
      "baseline": 22
    },
    {
      "id": "core",
      "type": "rectangle",
      "x": 110,
      "y": 490,
      "width": 230,
      "height": 80,
      "angle": 0,
      "strokeColor": "#22c55e",
      "backgroundColor": "#b2f2bb",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1016,
      "version": 1,
      "versionNonce": 1016,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "core-text",
      "type": "text",
      "x": 144,
      "y": 500,
      "width": 160,
      "height": 54,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1017,
      "version": 1,
      "versionNonce": 1017,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Core\\nScript container\\nDevice contract",
      "fontSize": 16,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "containerId": null,
      "originalText": "Core\\nScript container\\nDevice contract",
      "lineHeight": 1.25,
      "baseline": 52
    },
    {
      "id": "pipeline",
      "type": "rectangle",
      "x": 410,
      "y": 490,
      "width": 220,
      "height": 80,
      "angle": 0,
      "strokeColor": "#06b6d4",
      "backgroundColor": "#c3fae8",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1018,
      "version": 1,
      "versionNonce": 1018,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "pipeline-text",
      "type": "text",
      "x": 447,
      "y": 510,
      "width": 150,
      "height": 36,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1019,
      "version": 1,
      "versionNonce": 1019,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Write Pipeline\\nchunking + pacing",
      "fontSize": 16,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "containerId": null,
      "originalText": "Write Pipeline\\nchunking + pacing",
      "lineHeight": 1.25,
      "baseline": 35
    },
    {
      "id": "query",
      "type": "rectangle",
      "x": 710,
      "y": 490,
      "width": 220,
      "height": 80,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#ffd8a8",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1020,
      "version": 1,
      "versionNonce": 1020,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "query-text",
      "type": "text",
      "x": 746,
      "y": 510,
      "width": 150,
      "height": 36,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1021,
      "version": 1,
      "versionNonce": 1021,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Receive + Query\\ndispatch + timeout",
      "fontSize": 16,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "containerId": null,
      "originalText": "Receive + Query\\ndispatch + timeout",
      "lineHeight": 1.25,
      "baseline": 35
    },
    {
      "id": "image",
      "type": "rectangle",
      "x": 970,
      "y": 490,
      "width": 130,
      "height": 80,
      "angle": 0,
      "strokeColor": "#ec4899",
      "backgroundColor": "#eebefa",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1022,
      "version": 1,
      "versionNonce": 1022,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "image-text",
      "type": "text",
      "x": 990,
      "y": 506,
      "width": 90,
      "height": 45,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1023,
      "version": 1,
      "versionNonce": 1023,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Image /\\nRaster\\nhelpers",
      "fontSize": 15,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "containerId": null,
      "originalText": "Image /\\nRaster\\nhelpers",
      "lineHeight": 1.25,
      "baseline": 44
    },
    {
      "id": "bottom-zone",
      "type": "rectangle",
      "x": 70,
      "y": 675,
      "width": 1060,
      "height": 145,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fff3bf",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 45,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1024,
      "version": 1,
      "versionNonce": 1024,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "bottom-label",
      "type": "text",
      "x": 90,
      "y": 687,
      "width": 420,
      "height": 25,
      "angle": 0,
      "strokeColor": "#9a5a00",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1025,
      "version": 1,
      "versionNonce": 1025,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Dialect Families + Device Transports",
      "fontSize": 20,
      "fontFamily": 1,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "Dialect Families + Device Transports",
      "lineHeight": 1.25,
      "baseline": 22
    },
    {
      "id": "dialect",
      "type": "rectangle",
      "x": 110,
      "y": 730,
      "width": 260,
      "height": 70,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fff3bf",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1026,
      "version": 1,
      "versionNonce": 1026,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "dialect-text",
      "type": "text",
      "x": 152,
      "y": 742,
      "width": 178,
      "height": 40,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1027,
      "version": 1,
      "versionNonce": 1027,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Dialect Builders\\nESC / TSPL / CPCL",
      "fontSize": 17,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "containerId": null,
      "originalText": "Dialect Builders\\nESC / TSPL / CPCL",
      "lineHeight": 1.25,
      "baseline": 40
    },
    {
      "id": "family",
      "type": "rectangle",
      "x": 410,
      "y": 730,
      "width": 240,
      "height": 70,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#ffd8a8",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1028,
      "version": 1,
      "versionNonce": 1028,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "family-text",
      "type": "text",
      "x": 438,
      "y": 742,
      "width": 185,
      "height": 40,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1029,
      "version": 1,
      "versionNonce": 1029,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Printer Families\\nBoxliy / Aryten / Lin8inch",
      "fontSize": 17,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "containerId": null,
      "originalText": "Printer Families\\nBoxliy / Aryten / Lin8inch",
      "lineHeight": 1.25,
      "baseline": 40
    },
    {
      "id": "transport",
      "type": "rectangle",
      "x": 710,
      "y": 730,
      "width": 285,
      "height": 70,
      "angle": 0,
      "strokeColor": "#4a9eed",
      "backgroundColor": "#a5d8ff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1030,
      "version": 1,
      "versionNonce": 1030,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "transport-text",
      "type": "text",
      "x": 742,
      "y": 742,
      "width": 220,
      "height": 40,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1031,
      "version": 1,
      "versionNonce": 1031,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Transport Adapters\\nBLE / Classic BT / USB / Network",
      "fontSize": 17,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "containerId": null,
      "originalText": "Transport Adapters\\nBLE / Classic BT / USB / Network",
      "lineHeight": 1.25,
      "baseline": 40
    },
    {
      "id": "printer",
      "type": "rectangle",
      "x": 760,
      "y": 865,
      "width": 260,
      "height": 65,
      "angle": 0,
      "strokeColor": "#ef4444",
      "backgroundColor": "#ffc9c9",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": { "type": 3 },
      "seed": 1032,
      "version": 1,
      "versionNonce": 1032,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "printer-text",
      "type": "text",
      "x": 805,
      "y": 878,
      "width": 175,
      "height": 40,
      "angle": 0,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1033,
      "version": 1,
      "versionNonce": 1033,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Printer Firmware\\nmechanism + sensors",
      "fontSize": 17,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "containerId": null,
      "originalText": "Printer Firmware\\nmechanism + sensors",
      "lineHeight": 1.25,
      "baseline": 40
    },
    {
      "id": "note",
      "type": "text",
      "x": 120,
      "y": 860,
      "width": 520,
      "height": 50,
      "angle": 0,
      "strokeColor": "#9a5a00",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "roundness": null,
      "seed": 1034,
      "version": 1,
      "versionNonce": 1034,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Rule: choose command builders by actual printer support.\\nThe same template can reuse different transports.",
      "fontSize": 18,
      "fontFamily": 1,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "Rule: choose command builders by actual printer support.\\nThe same template can reuse different transports.",
      "lineHeight": 1.25,
      "baseline": 48
    },
    { "id": "arrow-1", "type": "arrow", "x": 365, "y": 190, "width": 125, "height": 0, "angle": 0, "strokeColor": "#4a9eed", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1035, "version": 1, "versionNonce": 1035, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [125, 0]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" },
    { "id": "arrow-2", "type": "arrow", "x": 710, "y": 190, "width": 125, "height": 0, "angle": 0, "strokeColor": "#06b6d4", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1036, "version": 1, "versionNonce": 1036, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [125, 0]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" },
    { "id": "arrow-3", "type": "arrow", "x": 945, "y": 215, "width": 0, "height": 110, "angle": 0, "strokeColor": "#8b5cf6", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1037, "version": 1, "versionNonce": 1037, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [0, 110]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" },
    { "id": "arrow-4", "type": "arrow", "x": 565, "y": 352, "width": 0, "height": 138, "angle": 0, "strokeColor": "#22c55e", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1038, "version": 1, "versionNonce": 1038, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [0, 138]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" },
    { "id": "arrow-5", "type": "arrow", "x": 340, "y": 530, "width": 70, "height": 0, "angle": 0, "strokeColor": "#22c55e", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1039, "version": 1, "versionNonce": 1039, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [70, 0]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" },
    { "id": "arrow-6", "type": "arrow", "x": 630, "y": 530, "width": 80, "height": 0, "angle": 0, "strokeColor": "#06b6d4", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1040, "version": 1, "versionNonce": 1040, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [80, 0]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" },
    { "id": "arrow-7", "type": "arrow", "x": 520, "y": 570, "width": -260, "height": 160, "angle": 0, "strokeColor": "#f59e0b", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1041, "version": 1, "versionNonce": 1041, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [-260, 160]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" },
    { "id": "arrow-8", "type": "arrow", "x": 370, "y": 765, "width": 40, "height": 0, "angle": 0, "strokeColor": "#f59e0b", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1042, "version": 1, "versionNonce": 1042, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [40, 0]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" },
    { "id": "arrow-9", "type": "arrow", "x": 650, "y": 765, "width": 60, "height": 0, "angle": 0, "strokeColor": "#4a9eed", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1043, "version": 1, "versionNonce": 1043, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [60, 0]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" },
    { "id": "arrow-10", "type": "arrow", "x": 850, "y": 800, "width": 35, "height": 65, "angle": 0, "strokeColor": "#ef4444", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1044, "version": 1, "versionNonce": 1044, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [35, 65]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" },
    { "id": "arrow-11", "type": "arrow", "x": 820, "y": 865, "width": -20, "height": -295, "angle": 0, "strokeColor": "#f59e0b", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "dashed", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1045, "version": 1, "versionNonce": 1045, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [-20, -295]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" },
    { "id": "arrow-12", "type": "arrow", "x": 710, "y": 530, "width": -500, "height": -310, "angle": 0, "strokeColor": "#f59e0b", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "dashed", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": { "type": 2 }, "seed": 1046, "version": 1, "versionNonce": 1046, "isDeleted": false, "boundElements": null, "updated": 1, "link": null, "locked": false, "points": [[0, 0], [-500, -310]], "lastCommittedPoint": null, "startBinding": null, "endBinding": null, "startArrowhead": null, "endArrowhead": "arrow" }
  ],
  "appState": {
    "gridSize": 20,
    "viewBackgroundColor": "#ffffff"
  },
  "files": {}
}
