{ "name": "v10-monologue-threading", "shapes": { "bg": { "type": "Rectangle", "left": 0, "top": 0, "width": 1140, "height": 760, "fillColor": "#1a1e24", "strokeColor": "#1a1e24" }, "bg-game-label": { "type": "Text", "left": 370, "top": 300, "text": "GAME VIEW — DEDUCTION SEQUENCE IN PROGRESS\n(player has observed contradiction, chain building)", "fontColor": "#333340", "fontSize": 14 }, "thread-container": { "type": "Rectangle", "left": 180, "top": 490, "width": 780, "height": 200, "fillColor": "#00000000", "strokeColor": "#00000000" }, "thread-line-connector": { "type": "Line", "left": 185, "top": 502, "width": 0, "height": 170, "strokeColor": "#2a3550" }, "monologue-node-1": { "type": "Rectangle", "left": 192, "top": 490, "width": 740, "height": 36, "fillColor": "#00000000", "strokeColor": "#00000000" }, "monologue-text-1": { "type": "Text", "left": 200, "top": 492, "width": 720, "text": "Kael's shift ended at 14:00. He was at the Terminal at 15:30.", "fontColor": "#d0d4e0", "fontSize": 13, "wordWrap": true }, "monologue-meta-1": { "type": "Text", "left": 200, "top": 510, "text": "observe_npc // 14s ago", "fontColor": "#3a4455", "fontSize": 9 }, "thread-node-dot-1": { "type": "Ellipse", "left": 183, "top": 499, "width": 5, "height": 5, "fillColor": "#4a9ebb", "strokeColor": "#4a9ebb" }, "monologue-node-2": { "type": "Rectangle", "left": 192, "top": 532, "width": 740, "height": 36, "fillColor": "#00000000", "strokeColor": "#00000000" }, "monologue-text-2": { "type": "Text", "left": 200, "top": 534, "width": 720, "text": "That manifest I saw — Bay 12. The count was wrong.", "fontColor": "#d0d4e0", "fontSize": 13, "wordWrap": true }, "monologue-meta-2": { "type": "Text", "left": 200, "top": 552, "text": "discover_evidence // 2 min ago", "fontColor": "#3a4455", "fontSize": 9 }, "thread-node-dot-2": { "type": "Ellipse", "left": 183, "top": 541, "width": 5, "height": 5, "fillColor": "#e8c547", "strokeColor": "#e8c547" }, "monologue-node-3-active": { "type": "Rectangle", "left": 192, "top": 572, "width": 740, "height": 40, "fillColor": "#00000000", "strokeColor": "#00000000" }, "monologue-accent-3": { "type": "Rectangle", "left": 196, "top": 572, "width": 2, "height": 40, "fillColor": "#c8d8f0", "strokeColor": "#c8d8f0" }, "monologue-text-3": { "type": "Text", "left": 204, "top": 574, "width": 720, "text": "He was supposed to be off-station. Which means he never left.", "fontColor": "#e0e8f8", "fontSize": 13, "wordWrap": true }, "monologue-meta-3": { "type": "Text", "left": 204, "top": 595, "text": "observe_anomaly // now // DEDUCTION", "fontColor": "#4a6888", "fontSize": 9 }, "thread-node-dot-3": { "type": "Ellipse", "left": 183, "top": 581, "width": 7, "height": 7, "fillColor": "#c8d8f0", "strokeColor": "#c8d8f0" }, "unreliable-hint": { "type": "Rectangle", "left": 200, "top": 618, "width": 480, "height": 20, "fillColor": "#12141a", "strokeColor": "#2a3040", "corners": [2, 2, 2, 2] }, "unreliable-text": { "type": "Text", "left": 208, "top": 622, "text": "v1.0: unreliable narrator hint — italics indicate character may be wrong", "fontColor": "#556677", "fontSize": 10 }, "connection-viz": { "type": "Rectangle", "left": 200, "top": 644, "width": 200, "height": 24, "fillColor": "#12141a", "strokeColor": "#2a3040", "corners": [2, 2, 2, 2] }, "connection-viz-text": { "type": "Text", "left": 208, "top": 649, "text": "KAEL ←→ BAY 12 ←→ MANIFEST", "fontColor": "#6677aa", "fontSize": 10 }, "connection-viz-note": { "type": "Text", "left": 408, "top": 650, "text": "v1.0: knowledge connection visualization", "fontColor": "#3a4455", "fontSize": 10 }, "thread-scroll-note": { "type": "Text", "left": 200, "top": 672, "text": "Thread scrolls upward as new thoughts arrive. Oldest fade out. Max 3-4 visible.", "fontColor": "#3a4455", "fontSize": 10 }, "hint-bar": { "type": "Rectangle", "left": 0, "top": 728, "width": 1140, "height": 32, "fillColor": "#0e1218", "strokeColor": "#333340" }, "hint-text": { "type": "Text", "left": 20, "top": 736, "text": "[E] Interact [Shift] Sprint [Tab] Insert [J] Case File [RMB] World Menu [Esc] Pause", "fontColor": "#6677aa", "fontSize": 11 }, "minimap-frame": { "type": "Rectangle", "left": 880, "top": 16, "width": 244, "height": 244, "fillColor": "#12141a", "strokeColor": "#c8d0e0", "corners": [4, 4, 4, 4] }, "minimap-stub-label": { "type": "Text", "left": 975, "top": 124, "text": "minimap", "fontColor": "#333340", "fontSize": 12 }, "annotation-title": { "type": "Text", "left": 16, "top": 16, "text": "v1.0 MONOLOGUE — THOUGHT THREADING (DEDUCTION CHAIN)", "fontColor": "#556677", "fontSize": 11 }, "annotation-notes": { "type": "Text", "left": 16, "top": 30, "width": 840, "text": "Thread of 3 thoughts connected by vertical line. Each node has source trigger + timestamp. Active node has accent bar. Connection visualization. Unreliable narrator hints in italics.", "fontColor": "#3a4455", "fontSize": 10, "wordWrap": true } } }