{
  "schema": "tce-cookbook-card-render-v1",
  "createdAt": "2026-10-03T09:01:33.083Z",
  "source": "Actual Synatrail ResearchNode, Relationship, RelationshipChip, EdgeMarkerDefs and orthogonal routing inside ReactFlow; no redrawn node facsimiles.",
  "presentationAdditions": "Minimum card heights with room for wrapped statuses, deliberate native port/layout choices, authored context summaries and saved relationship annotations rendered by the native relationship chip. These are illustrative examples of live canvas features, not model output.",
  "providerCalls": 0,
  "originalSourcesChanged": false,
  "graph": "flow-cards-graph.json",
  "image": {
    "path": "flow-cards.png",
    "sha256": "bc047d356848adf566f77f5b92898cbedf8bd84e72e367db50154818a19c3fae",
    "pixelWidth": 2000,
    "pixelHeight": 3140,
    "cssWidth": 1000,
    "cssHeight": 1569.21875,
    "deviceScaleFactor": 2
  },
  "nodeCount": 7,
  "cardCount": 7,
  "frameCount": 0,
  "edgeCount": 6,
  "measurements": {
    "nodes": [
      {
        "id": "A",
        "isFrame": false,
        "x": 70,
        "y": 175.21875,
        "width": 252,
        "height": 208,
        "title": "Review interfaces and travel",
        "body": "Resolve interfaces before drawing geometry."
      },
      {
        "id": "B",
        "isFrame": false,
        "x": 678,
        "y": 175.21875,
        "width": 252,
        "height": 208,
        "title": "Plan base and feet",
        "body": "240 × 180 × 10 mm base; four feet."
      },
      {
        "id": "C",
        "isFrame": false,
        "x": 678,
        "y": 525.21875,
        "width": 252,
        "height": 208,
        "title": "Plan supports and guides",
        "body": "Two guide rods; support bores need review."
      },
      {
        "id": "D",
        "isFrame": false,
        "x": 70,
        "y": 525.21875,
        "width": 252,
        "height": 208,
        "title": "Plan jaws and pads",
        "body": "Two jaws and inward pads; bushings provisional."
      },
      {
        "id": "E",
        "isFrame": false,
        "x": 70,
        "y": 875.21875,
        "width": 252,
        "height": 208,
        "title": "Plan screw nut and knob",
        "body": "Manual drive; thrust and retention stay open."
      },
      {
        "id": "F",
        "isFrame": false,
        "x": 678,
        "y": 875.21875,
        "width": 252,
        "height": 208,
        "title": "Separate CAD geometry review",
        "body": "BRep checks are separate from physical tests."
      },
      {
        "id": "G",
        "isFrame": false,
        "x": 678,
        "y": 1225.21875,
        "width": 252,
        "height": 208,
        "title": "Conditional bench check proposal",
        "body": "Proposed check; method and approval stay open."
      }
    ],
    "labels": [
      {
        "id": "A-B",
        "text": "→Forward flow · informsInterface constraints",
        "x": 375,
        "y": 245.0234375,
        "width": 250,
        "height": 68.390625
      },
      {
        "id": "B-C",
        "text": "→Forward flow · supportsDatum and mounting envelope",
        "x": 679,
        "y": 420.0234375,
        "width": 250,
        "height": 68.390625
      },
      {
        "id": "C-D",
        "text": "→Forward flow · requiresGuide / bushing interfaces",
        "x": 375,
        "y": 595.0234375,
        "width": 250,
        "height": 68.390625
      },
      {
        "id": "D-E",
        "text": "→Forward flow · informsJaw opening and nut position",
        "x": 71,
        "y": 770.0234375,
        "width": 250,
        "height": 68.390625
      },
      {
        "id": "E-F",
        "text": "→Forward flow · feeds inputDeclared CAD assumptions",
        "x": 375,
        "y": 945.0234375,
        "width": 250,
        "height": 68.390625
      },
      {
        "id": "F-G",
        "text": "→Forward flow · qualifiesGeometry findings and open limits",
        "x": 679,
        "y": 1120.0234375,
        "width": 250,
        "height": 68.390625
      }
    ],
    "page": {
      "x": 0,
      "y": 0,
      "width": 1000,
      "height": 1569.21875
    },
    "clipped": []
  },
  "collisions": [],
  "rendererSources": [
    {
      "path": "scripts/cookbook-card-graphs.mjs",
      "sha256": "837027bba8e9a9238b7017adba55db8a51b4dd0d1792c8fb48ad27fa9de7c0e4"
    },
    {
      "path": "scripts/cookbook-card-graphs.jsx",
      "sha256": "d2691db18edb79b3f0a81dfa4a1c8561d7e070021a29579e06ef22c92b532551"
    }
  ],
  "componentSources": [
    {
      "path": "the-confused-engineer/design-system.css",
      "sha256": "dcc6358b44fa34ce6488c533a8368a1fc1f28f95e695ebaf836b789766198191"
    },
    {
      "path": "the-confused-engineer/sketch.css",
      "sha256": "dbf713e2ffb5b9df81902c5190f29f8975288c7f89477dae3438d72abe7fcb4c"
    },
    {
      "path": "the-confused-engineer/canvas.css",
      "sha256": "3d5b7e072d830b08d0ad3f8ea082b31730129bb6bab35a4eea0df1ba57c4f191"
    },
    {
      "path": "the-confused-engineer/canvas-edge-annotation.css",
      "sha256": "d5cd9b6d7bb9062f1b4732cc1dd2ef8b88a82ec0465db1bad4a054cd3bc39e96"
    },
    {
      "path": "the-confused-engineer/node_modules/@xyflow/react/dist/style.css",
      "sha256": "7ed5ae87a6c9bd664fce1802ce33fbe84faaefe33e21c82be35529df06e0c686"
    },
    {
      "path": "the-confused-engineer/canvas-app.jsx",
      "sha256": "3a7f5c69d2e68beeb6cc2abff1af9e2eab76f7fa5d2f82d2059bcb9574908110"
    },
    {
      "path": "the-confused-engineer/canvas-edges.jsx",
      "sha256": "a3b13aa7c591a9648c77002eeaab5d97b713ca1fb924eeae940e69597b912b2b"
    },
    {
      "path": "the-confused-engineer/canvas-edge-routing.mjs",
      "sha256": "f639ef127281bed2841e58119c64820070ddbc0fbc9b487d8634a2d1fbb98dac"
    },
    {
      "path": "the-confused-engineer/canvas-edge-labels.mjs",
      "sha256": "4a4290beb2456f25f289a5c178e6114fe46720439cccd546e655604e5f6dc26c"
    },
    {
      "path": "the-confused-engineer/canvas-node-shapes.mjs",
      "sha256": "27da12b73718f242b3cfacc0ae7d85b86197fb3d702025c160aba031f9bef041"
    }
  ],
  "provenance": {
    "authorship": "The API-authored Mermaid node names and topology are unchanged. Card roles, short context summaries, relation types, payload labels and presentation positions were authored later for the cookbook.",
    "canonical": {
      "path": "flow.mmd",
      "sha256": "d81adebea534fd6843de41c4fee3ad7e0870b19fb06e6aed60f2372a5819688c"
    },
    "context": {
      "path": "review-notes.md",
      "sha256": "2afddd7be30fa16a946aa9d4fa9a738eb929893451ff1c4bc5cd5c164622f0c5"
    },
    "liveInvestigationNodeCount": 3,
    "separatePresentationDiagram": true
  }
}
