{
  "format": "ozone-route-v64",
  "version": "3.9.0.0",
  "palette": {
    "navy": "#193e78",
    "orange": "#e87927",
    "purple": "#8254cf",
    "green": "#178b71",
    "pink": "#cc478a",
    "cyan": "#168f9b",
    "violet": "#6537ff",
    "blue": "#386cff",
    "mint": "#24c8b0",
    "white": "#ffffff",
    "ice": "#d5f5ff",
    "silver": "#b8c4d6",
    "slate": "#6d819c",
    "azure": "#149bff",
    "sky": "#55c4ff",
    "indigo": "#5145cd",
    "lavender": "#b19aff",
    "lilac": "#ccadff",
    "magenta": "#e54aff",
    "fuchsia": "#f72585",
    "rose": "#fb7185",
    "coral": "#ff7f66",
    "red": "#ef4444",
    "crimson": "#bd2846",
    "amber": "#f59e0b",
    "gold": "#ffd166",
    "yellow": "#f8ef61",
    "lime": "#b5e853",
    "emerald": "#22c55e",
    "seafoam": "#83eed0",
    "teal": "#2dd4bf",
    "peach": "#ffb88c"
  },
  "payload": {
    "format": "ozone-route-v64",
    "route": {
      "title": "عنوان دلخواه مسیر؛ ۱ تا ۶۰ نویسه",
      "description": "حداکثر ۱۶۰ نویسه",
      "presetImage": "preset-5",
      "type": "normal"
    },
    "slides": [
      {
        "title": "عنوان؛ حداکثر ۱۴۰ نویسه",
        "description": "حداکثر ۹۰۰ نویسه",
        "highlight": "حداکثر ۲۲۰ نویسه",
        "notes": "حداکثر ۲۰۰۰۰ نویسه",
        "track": "main",
        "flowColor": "orange",
        "glowColor": "navy",
        "flowSpeed": 2400,
        "flowAnimation": true,
        "arrival": true,
        "rims": [
          {
            "target": "highlight",
            "color": "orange"
          }
        ],
        "visualOverride": {
          "type": "chain",
          "nodes": [
            {
              "title": "شروع",
              "detail": "شرح کوتاه",
              "icon": "user",
              "tone": "navy"
            },
            {
              "title": "نتیجه",
              "detail": "شرح کوتاه",
              "icon": "check",
              "tone": "orange"
            }
          ],
          "edges": [
            {
              "from": 0,
              "to": 1,
              "color": "orange"
            }
          ],
          "hint": "شرح جریان"
        }
      }
    ]
  },
  "limits": {
    "slidesPerRoute": 80,
    "ordinaryNodes": 12,
    "ordinaryEdges": 24,
    "tableColumns": 5,
    "tableRows": 12,
    "proFlowRows": 8,
    "proFlowColumns": 3,
    "proFlowNodes": 24,
    "proFlowEdges": 48,
    "proFlowPaths": 12,
    "videoBytes": 31457280
  },
  "visualTypes": [
    "imagefull",
    "image",
    "scoreboard",
    "matrix",
    "chain",
    "hub",
    "loop",
    "branches",
    "layers",
    "decision",
    "customgraph",
    "payment",
    "network",
    "compare",
    "funnel",
    "refund",
    "equation",
    "experiment",
    "flowpro",
    "video",
    "text",
    "imageright",
    "imageoverlay"
  ],
  "images": "For a large photo slide use visualOverride:{type:'imagefull',nodes:[]}, embedded PNG/JPEG/WebP image or canonical presetImage, imageFit:'contain' (default, no crop) or 'cover', imageCaption:false. Add rims:[{target:'visual',color:'violet',width:2}].",
  "templates": "Optional templateSource is an existing source slide ID from ozone-slide-catalog; templateEdits maps existing text-node indices to replacement strings. Optional libraryId is an existing item ID: oz55-01..oz55-40, oz59-01..oz59-48, oz60-board-01..oz60-board-12. Prefer explicit visualOverride for deterministic new content.",
  "table": {
    "type": "matrix",
    "nodes": [],
    "columns": [
      "عنوان",
      "مقدار"
    ],
    "rows": [
      [
        "شاخص",
        "نیاز به داده"
      ]
    ],
    "hint": "اعداد واقعی را جایگزین کنید",
    "rim": "orange"
  },
  "flowpro": {
    "type": "flowpro",
    "flowRows": [
      "ورودی",
      "خروجی"
    ],
    "nodes": [
      {
        "title": "شروع",
        "detail": "",
        "row": 1,
        "col": 2,
        "icon": "user",
        "tone": "navy",
        "shape": "card",
        "badge": "ورودی",
        "note": "توضیح اختیاری",
        "rim": false
      },
      {
        "title": "نتیجه",
        "detail": "",
        "row": 2,
        "col": 2,
        "icon": "check",
        "tone": "green",
        "shape": "pill",
        "badge": "",
        "note": "",
        "rim": true
      }
    ],
    "edges": [
      {
        "id": "edge-1",
        "from": 0,
        "to": 1,
        "label": "پردازش",
        "color": "orange",
        "kind": "curve",
        "direction": "forward",
        "duration": 2400,
        "delay": 0,
        "width": 3,
        "beam": 25
      }
    ],
    "paths": [
      {
        "id": "path-1",
        "title": "مسیر اصلی",
        "mode": "serial",
        "steps": [
          "edge-1"
        ]
      }
    ],
    "activePath": "path-1",
    "loop": true,
    "hold": 1800,
    "hint": "جریان چندردیفی"
  },
  "flowRules": "Unique row/column per box, 1-based row and col; edge endpoints are zero-based node indices, distinct and in bounds. Edge IDs and path IDs unique. Path steps reference edge IDs in desired order. Multiple paths remain switchable in the viewer. Shape card/pill/decision; kind curve/elbow/straight; direction forward/reverse/alternate; duration 400..10000ms; delay 0..5000ms; width 1..12; beam 8..80 percent. mode serial/parallel; hold 0..10000ms. No arbitrary code or external URLs.",
  "motion": {
    "flowSpeed": [
      1600,
      2400,
      3200
    ],
    "rimSpeed": [
      8,
      12,
      18
    ],
    "rimTargets": [
      "title",
      "copy",
      "highlight",
      "visual",
      "table",
      "flow",
      "node:0",
      "row:0"
    ],
    "rimWidth": "1..12 CSS px, default 2",
    "flowWidth": "1..12 CSS px, default 3"
  },
  "delivery": "Return a valid ozone-route-v64 JSON file. Import it through ساخت ارائه → با هوش مصنوعی → واردکردن پاسخ AI. Never rewrite the application HTML.",
  "live": {
    "routeType": "live",
    "animation": [
      "orbit",
      "horizon",
      "breathe",
      "converge",
      "ripple",
      "wave",
      "constellation",
      "aurora",
      "helix",
      "prism"
    ],
    "name": "Required 1–64 characters",
    "title": "0–96 characters",
    "photo": "Empty or embedded PNG/JPEG/WebP data URL, max 4200000 characters",
    "toastSeconds": [
      3,
      5,
      8
    ],
    "lightColors": "Array of 3 palette IDs, defaults violet, blue, mint",
    "lightWidth": "1..12 CSS px",
    "introLogo": "Optional embedded PNG/JPEG/WebP data URL, max 2800000 characters; empty restores the IO intro brand. This does not replace the official Ozone logos."
  },
  "home": {
    "title": "Optional 1–72 characters, at most two lines",
    "subtitle": "Optional 1–180 characters"
  },
  "productVersion": "3.9.0.0",
  "video": {
    "visualOverride": {
      "type": "video",
      "nodes": []
    },
    "video": "embedded data:video/mp4;base64,... or data:video/webm;base64,..., maximum 30 MiB",
    "videoPoster": "optional embedded PNG/JPEG/WebP",
    "videoFull": true,
    "videoCaption": false,
    "videoAuto": false,
    "videoMuted": false,
    "videoLoop": false,
    "videoFit": "contain"
  },
  "io2": {
    "knowledge": "Read io22-ai-context in this HTML. Use approved, sourced, current facts only. Default to public disclosure. Never invent facts.",
    "slideFields": {
      "io2": {
        "mood": "board | sales | stage",
        "role": "core | detail | appendix",
        "seconds": "15..900",
        "sources": [
          "knowledge item IDs"
        ],
        "canvas": "boolean: focusable visual nodes",
        "simulator": "null or {users:0..1e8,basket:0..1e10,frequency:0..100,rate:0..100,cost:0..1e15}"
      }
    },
    "workflow": "Read → ask audience/objective/duration → propose outline → approved ozone-route-v64 JSON. Never alter application code."
  },
  "icons": [
    "user",
    "users",
    "wallet",
    "card",
    "credit",
    "chart",
    "data",
    "receipt",
    "cart",
    "store",
    "bank",
    "app",
    "rules",
    "clock",
    "layers",
    "lock",
    "check",
    "ledger",
    "target",
    "voucher",
    "gift",
    "hub",
    "return",
    "box",
    "ozone",
    "spark"
  ],
  "input": "Upload this HTML master to a new chat and say فایل را بخوان.",
  "typography": {
    "titleSize": "Optional 0 (original) or 24..84 CSS pixels; responsive on mobile",
    "titleWeight": "Optional 0 (original), 400, 500, 600, 700, 800, 900"
  },
  "layouts": {
    "text": "Centered title, description and highlight. No visual. nodes:[]",
    "image": "Image on the left, text on the right",
    "imageright": "Image on the right, text on the left",
    "imagefull": "Existing large image slide; optional imageCaption",
    "imageoverlay": "Readable text over a large image with a dark scrim. imageFit:contain or cover"
  },
  "ioPresentVersion": "3.9.0.0",
  "studio26": {
    "optionalSlideField": "studio26",
    "transition": [
      "original",
      "soft",
      "cinema",
      "zoom"
    ],
    "preset": [
      "original",
      "formal",
      "calm",
      "cinema"
    ],
    "timeline": "boolean; ordered reveal",
    "manual": "boolean; advance with next step",
    "step": "seconds 0.2..10",
    "audio": "embedded data:audio URI only",
    "caption": "plain text or SRT",
    "choices": "array of {title,target}; target must be an included slide placement ID",
    "cues": "optional [{part:componentIndex,at:seconds,duration:0.1..30,glow:boolean}]",
    "audioSync": "boolean; use narration currentTime as timeline clock",
    "camera": "optional [{part:-1 for wide or componentIndex,at:seconds,duration:0.1..30,scale:1..4}]",
    "sharedKeys": "optional object mapping component indices to stable names for scene-to-scene motion",
    "design": "optional {align:original|start|center,density:original|compact|spacious}",
    "sheet": {
      "purpose": "optional per-slide spreadsheet table; all cells stay offline",
      "rows": "Rectangular array of {text:string,n:optional finite number}; maximum 20000 rows, 256 columns, 500000 cells, 48000000 serialized characters per table.",
      "headerRows": "0..3",
      "merges": "optional [{r,c,rs,cs}] within range; never crosses header/data boundary",
      "placement": [
        "visual",
        "below"
      ],
      "style": [
        "clean",
        "focus",
        "bars"
      ],
      "theme": [
        "brand",
        "ocean",
        "violet",
        "ink"
      ],
      "pageSize": [
        0,
        5,
        7,
        10,
        15,
        25,
        50
      ],
      "direction": [
        "rtl",
        "ltr"
      ],
      "freeze": "Legacy boolean; used only when freezeCols is absent",
      "total": "boolean: user marks final row as total",
      "note": "No formulas execute. Only chosen visible values are exported. Preserve every supplied number and display string.",
      "freezeRows": "0..3, number of leading rows held during scroll; independent of headerRows",
      "freezeCols": "0..2, number of leading columns held during scroll",
      "freezeMerges": "A boundary inside a merged cell extends to the end of that cell. Never split merges.",
      "workbook": {
        "optional": true,
        "purpose": "Selected Excel sheets in one table card with accessible tabs; omit for a single table. Only explicitly selected cell snapshots are exported, never original workbook bytes.",
        "shape": {
          "version": 1,
          "activeSheet": "id of the authored starting tab",
          "sheets": [
            {
              "id": "unique ASCII letters/digits/underscore/hyphen, up to 80 chars",
              "name": "unique tab label, up to 100 chars",
              "sheet": "ordinary studio26.sheet table without nested workbook"
            }
          ]
        },
        "limits": "2..30 sheets, 1000000 cells total, 128000000 serialized characters; per-table limits apply.",
        "behavior": "Only active sheet renders. Accessible sheet tabs and selector; all columns accessible with native horizontal scrolling, all rows with vertical scrolling. Optional paged mode. Static Quick Look maximum 20000 cells."
      },
      "compact": "boolean, default true. Reversible display projection hides fully empty rows/columns, preserves zero, nonempty values, original edit coordinates and remaps actual merges. false preserves intentional blank spacing. It never invents merges between unrelated data.",
      "pageSizeNote": "Used only with navigation:pages. Scroll mode measures actual row heights, preserves full cell text and all source rows/columns. Merged spans split at virtual or page boundaries without deleting data.",
      "import": "Local worker accepts XLSX/XLS/CSV/TSV up to 50 MiB, 150 MiB expanded ZIP. Meaningful worksheet bounds are auto-detected, including merged titles; formatting-only empty tails are excluded. Very sparse oversized ranges can compact at import; original file remains unchanged.",
      "navigation": "scroll (default) | pages. Scroll shows every column and virtualizes rows without truncating data; touch, trackpad, scrollbar and keyboard work. Optional pages preserves previous controls."
    },
    "sheetMode": "Optional 'slide' for a dedicated spreadsheet slide with editable title/description and visualOverride:{type:'text',nodes:[]}; omit for a table element on an existing layout. Both use studio26.sheet.",
    "visuals": {
      "description": "Optional array of up to 6 editable charts, SmartArt or infographics per slide. All SVG and light animations embedded offline.",
      "types": {
        "line": "خطی",
        "multiLine": "خطی چندسری",
        "stepLine": "خطی پله‌ای",
        "area": "ناحیه‌ای",
        "stackedArea": "ناحیه‌ای انباشته",
        "percentArea": "ناحیه‌ای صددرصد",
        "combo": "ترکیبی ستون و خط",
        "column": "ستونی",
        "bar": "میله‌ای افقی",
        "groupedColumn": "ستونی گروهی",
        "groupedBar": "میله‌ای گروهی",
        "stackedColumn": "ستونی انباشته",
        "stackedBar": "میله‌ای انباشته",
        "percentColumn": "ستونی صددرصد",
        "percentBar": "میله‌ای صددرصد",
        "rangeColumn": "ستونی بازه‌ای",
        "rangeBar": "میله‌ای بازه‌ای",
        "lollipop": "آبنباتی",
        "dotPlot": "نقطه‌ای دسته‌ای",
        "dumbbell": "دمبلی",
        "bullet": "عملکرد و هدف",
        "waterfall": "آبشاری",
        "pareto": "پارتو",
        "pie": "پای چارت",
        "donut": "حلقه‌ای",
        "halfDonut": "نیم‌حلقه",
        "rose": "رز قطبی",
        "radialBar": "میله‌ای شعاعی",
        "gauge": "گیج",
        "progress": "پیشرفت",
        "waffle": "وافل",
        "treemap": "نقشهٔ درختی",
        "sunburst": "خورشیدی",
        "funnel": "قیف فروش",
        "funnelBars": "قیف میله‌ای",
        "funnelHorizontal": "قیف افقی",
        "funnelPyramid": "قیف پله‌ای",
        "sankey": "سنکی · جریان",
        "scatter": "پراکندگی",
        "bubble": "حبابی",
        "radar": "رادار",
        "radarArea": "رادار ناحیه‌ای",
        "heatmap": "نقشهٔ حرارتی",
        "histogram": "هیستوگرام",
        "boxplot": "جعبه‌ای",
        "candlestick": "کندل",
        "ohlc": "قیمت باز/بسته",
        "process": "فرایند افقی",
        "verticalProcess": "فرایند عمودی",
        "chevronProcess": "فرایند پیکانی",
        "stepProcess": "فرایند پلکانی",
        "snakeProcess": "مسیر مارپیچ · اسنیک",
        "timeline": "خط زمانی",
        "roadmap": "نقشهٔ راه",
        "cycle": "چرخهٔ بسته",
        "radialCycle": "چرخهٔ شعاعی",
        "segmentedCycle": "چرخهٔ بخش‌بندی‌شده",
        "orgChart": "چارت سازمانی",
        "tree": "درخت عمودی",
        "horizontalTree": "درخت افقی",
        "decisionTree": "درخت تصمیم",
        "pictureHierarchy": "سلسله‌مراتب تصویری",
        "radial": "رابطهٔ شعاعی",
        "venn": "ون · هم‌پوشانی",
        "target": "هدف و لایه‌ها",
        "balance": "توازن دوطرفه",
        "equation": "معادلهٔ تصویری",
        "matrix": "ماتریس چهارخانه",
        "titledMatrix": "ماتریس با عنوان مرکزی",
        "cycleMatrix": "ماتریس چرخه‌ای",
        "gridMatrix": "ماتریس شبکه‌ای",
        "pyramid": "هرم",
        "invertedPyramid": "هرم وارونه",
        "pyramidList": "هرم همراه فهرست",
        "list": "فهرست باکسی",
        "numberedList": "فهرست شماره‌دار",
        "groupedList": "فهرست گروه‌بندی‌شده",
        "pictureList": "فهرست تصویری",
        "pictureGrid": "شبکهٔ تصویری",
        "kpi": "کارت شاخص",
        "comparison": "مقایسهٔ شاخص‌ها",
        "scorecard": "کارت امتیاز",
        "statsRing": "حلقه‌های شاخص",
        "milestones": "نقاط عطف",
        "swot": "تحلیل SWOT",
        "network": "گراف شبکه‌ای",
        "directedGraph": "گراف جهت‌دار",
        "arcDiagram": "گراف کمانی",
        "chord": "نمودار ارتباط حلقوی"
      },
      "item": {
        "type": "one of types",
        "title": "string",
        "unit": "string",
        "caption": "source/explanation",
        "items": "1..100 objects; label/detail strings; numeric fields value,value2,value3,x,low,high,open,close as required by registry; parent/source/target strings; image optional embedded PNG/JPEG/WebP data URL",
        "color": "Primary chart/node color as #RRGGBB; choose together with palette.",
        "light": "boolean (default true)",
        "speed": "legacy field retained for compatibility; use flowDuration/rimDuration instead",
        "thickness": "1..12 CSS px, default 2; custom motion only",
        "series": "1..3 series labels. Flexible multi-series charts accept 1, 2 or 3 complete series; provide value/value2/value3 only for active series. Never fill absent series with invented zeroes. Every row must have all active numeric fields.",
        "motion": "scene (default): inherit slide on/off and slow speed; custom: independent durations and thickness. Shared Next-button bright rim profile, 2px luminous core and colored halo, in all charts, Smart elements, infographic elements, flow connections and box/table rims.",
        "flowDuration": "8000 | 12000 | 18000 milliseconds, default 12000; legacy presets migrated",
        "rimDuration": "8 | 12 | 18 seconds, default 12; legacy 24/36/54 migrated",
        "lightColor": "inherit (default): follow each data series or element color; scene: slide light color; or palette key",
        "direction": "forward | reverse | alternate",
        "palette": "brand | ocean | sunset | orchid | forest | mono | custom | navy | midnight | steel | emerald | pine | sage | teal | indigo | amber | rose | slate. These control actual chart colors, not lightColor.",
        "colors": "Optional custom array of 1..12 #RRGGBB colors; palette:custom. color remains the first/primary color.",
        "graphRules": "network, directedGraph, arcDiagram: positive weighted source/target edges, distinct nonempty endpoints, cycles allowed, maximum 60 nodes. chord: maximum 24 nodes. Sankey remains acyclic; do not invent balancing values."
      },
      "rules": [
        "Read registry fields for the selected type. Preserve exact source values; never invent missing data.",
        "Numeric values must be finite with absolute value <= 1e15. Pie, funnels, stacked, radar, size and proportion charts require nonnegative data. Ratios require a positive target.",
        "Boxplot: low <= value(Q1) <= value2(median) <= value3(Q3) <= high. OHLC: low <= open/close <= high.",
        "Hierarchy requires unique labels and existing parents, no cycles. Sankey rows require positive value, source and target; directed acyclic graph only.",
        "Matrix and SWOT require four items; balance two; Venn two to four; radar at least three.",
        "Use up to 100 data rows and 6 visuals per slide. All fields persist in master, reader and desktop outputs.",
        "Use studio26.visualMode:slide with visualOverride:{type:text,nodes:[]} for dedicated visual slides; omit mode to append to any slide.",
        "Import full presentation JSON; the text-only edits endpoint does not accept visuals. Images must be embedded PNG, JPEG or WebP, not remote URLs.",
        "Mobile layout: keep names concise, descriptions may wrap. Use bar/groupedBar for long labels and dumbbell for paired endpoints. Flexible charts support 1..3 series. Do not choose groupedBar with extra missing series. Generic numeric charts must retain units and visible values. Flow labels describe relationships, not duplicate long node text.",
        "Visuals sit directly on the slide: transparent outer surface, base-slide copy/figure proportions, responsive typography and contained SVG. Dense HTML lists use in-slide pages without changing source values or chart scales. Keep labels concise; use the full-data view or expanded view for dense graphs. No invented values, deletion or automatic aggregation."
      ],
      "example": {
        "visuals": [
          {
            "type": "line",
            "title": "روند نمونه",
            "unit": "واحد",
            "items": [
              {
                "label": "ماه اول",
                "value": 10
              },
              {
                "label": "ماه دوم",
                "value": 15
              }
            ],
            "light": true,
            "color": "#22c58b",
            "speed": 4,
            "thickness": 2
          }
        ],
        "visualMode": "slide"
      },
      "registry": {
        "line": {
          "id": "line",
          "title": "خطی",
          "group": "نمودار · روند",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "multiLine": {
          "id": "multiLine",
          "title": "خطی چندسری",
          "group": "نمودار · روند",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "stepLine": {
          "id": "stepLine",
          "title": "خطی پله‌ای",
          "group": "نمودار · روند",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "area": {
          "id": "area",
          "title": "ناحیه‌ای",
          "group": "نمودار · روند",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "stackedArea": {
          "id": "stackedArea",
          "title": "ناحیه‌ای انباشته",
          "group": "نمودار · روند",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "percentArea": {
          "id": "percentArea",
          "title": "ناحیه‌ای صددرصد",
          "group": "نمودار · روند",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "combo": {
          "id": "combo",
          "title": "ترکیبی ستون و خط",
          "group": "نمودار · روند",
          "fields": [
            "value",
            "value2"
          ],
          "note": ""
        },
        "column": {
          "id": "column",
          "title": "ستونی",
          "group": "نمودار · مقایسه",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "bar": {
          "id": "bar",
          "title": "میله‌ای افقی",
          "group": "نمودار · مقایسه",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "groupedColumn": {
          "id": "groupedColumn",
          "title": "ستونی گروهی",
          "group": "نمودار · مقایسه",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "groupedBar": {
          "id": "groupedBar",
          "title": "میله‌ای گروهی",
          "group": "نمودار · مقایسه",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "stackedColumn": {
          "id": "stackedColumn",
          "title": "ستونی انباشته",
          "group": "نمودار · مقایسه",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "stackedBar": {
          "id": "stackedBar",
          "title": "میله‌ای انباشته",
          "group": "نمودار · مقایسه",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "percentColumn": {
          "id": "percentColumn",
          "title": "ستونی صددرصد",
          "group": "نمودار · مقایسه",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "percentBar": {
          "id": "percentBar",
          "title": "میله‌ای صددرصد",
          "group": "نمودار · مقایسه",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "rangeColumn": {
          "id": "rangeColumn",
          "title": "ستونی بازه‌ای",
          "group": "نمودار · مقایسه",
          "fields": [
            "low",
            "high"
          ],
          "note": ""
        },
        "rangeBar": {
          "id": "rangeBar",
          "title": "میله‌ای بازه‌ای",
          "group": "نمودار · مقایسه",
          "fields": [
            "low",
            "high"
          ],
          "note": ""
        },
        "lollipop": {
          "id": "lollipop",
          "title": "آبنباتی",
          "group": "نمودار · مقایسه",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "dotPlot": {
          "id": "dotPlot",
          "title": "نقطه‌ای دسته‌ای",
          "group": "نمودار · مقایسه",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "dumbbell": {
          "id": "dumbbell",
          "title": "دمبلی",
          "group": "نمودار · مقایسه",
          "fields": [
            "value",
            "value2"
          ],
          "note": ""
        },
        "bullet": {
          "id": "bullet",
          "title": "عملکرد و هدف",
          "group": "نمودار · مقایسه",
          "fields": [
            "value",
            "value2"
          ],
          "note": ""
        },
        "waterfall": {
          "id": "waterfall",
          "title": "آبشاری",
          "group": "نمودار · مقایسه",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "pareto": {
          "id": "pareto",
          "title": "پارتو",
          "group": "نمودار · مقایسه",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "pie": {
          "id": "pie",
          "title": "پای چارت",
          "group": "نمودار · سهم و نسبت",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "donut": {
          "id": "donut",
          "title": "حلقه‌ای",
          "group": "نمودار · سهم و نسبت",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "halfDonut": {
          "id": "halfDonut",
          "title": "نیم‌حلقه",
          "group": "نمودار · سهم و نسبت",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "rose": {
          "id": "rose",
          "title": "رز قطبی",
          "group": "نمودار · سهم و نسبت",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "radialBar": {
          "id": "radialBar",
          "title": "میله‌ای شعاعی",
          "group": "نمودار · سهم و نسبت",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "gauge": {
          "id": "gauge",
          "title": "گیج",
          "group": "نمودار · سهم و نسبت",
          "fields": [
            "value",
            "value2"
          ],
          "note": "مقدار و سقف"
        },
        "progress": {
          "id": "progress",
          "title": "پیشرفت",
          "group": "نمودار · سهم و نسبت",
          "fields": [
            "value",
            "value2"
          ],
          "note": "مقدار و هدف"
        },
        "waffle": {
          "id": "waffle",
          "title": "وافل",
          "group": "نمودار · سهم و نسبت",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "treemap": {
          "id": "treemap",
          "title": "نقشهٔ درختی",
          "group": "نمودار · سهم و نسبت",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "sunburst": {
          "id": "sunburst",
          "title": "خورشیدی",
          "group": "نمودار · سهم و نسبت",
          "fields": [
            "value",
            "parent"
          ],
          "note": "مقدار برگ‌ها؛ گروه در ستون والد"
        },
        "funnel": {
          "id": "funnel",
          "title": "قیف فروش",
          "group": "نمودار · قیف و جریان",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "funnelBars": {
          "id": "funnelBars",
          "title": "قیف میله‌ای",
          "group": "نمودار · قیف و جریان",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "funnelHorizontal": {
          "id": "funnelHorizontal",
          "title": "قیف افقی",
          "group": "نمودار · قیف و جریان",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "funnelPyramid": {
          "id": "funnelPyramid",
          "title": "قیف پله‌ای",
          "group": "نمودار · قیف و جریان",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "sankey": {
          "id": "sankey",
          "title": "سنکی · جریان",
          "group": "نمودار · قیف و جریان",
          "fields": [
            "value",
            "source",
            "target"
          ],
          "note": "هر ردیف یک جریان مثبت از مبدأ به مقصد؛ شبکه باید بدون چرخه باشد"
        },
        "scatter": {
          "id": "scatter",
          "title": "پراکندگی",
          "group": "نمودار · تحلیل",
          "fields": [
            "x",
            "value"
          ],
          "note": ""
        },
        "bubble": {
          "id": "bubble",
          "title": "حبابی",
          "group": "نمودار · تحلیل",
          "fields": [
            "x",
            "value",
            "value2"
          ],
          "note": "X، Y و اندازهٔ حباب"
        },
        "radar": {
          "id": "radar",
          "title": "رادار",
          "group": "نمودار · تحلیل",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "radarArea": {
          "id": "radarArea",
          "title": "رادار ناحیه‌ای",
          "group": "نمودار · تحلیل",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "heatmap": {
          "id": "heatmap",
          "title": "نقشهٔ حرارتی",
          "group": "نمودار · تحلیل",
          "fields": [
            "value",
            "value2",
            "value3"
          ],
          "note": "1..3 complete series. value required; value2/value3 required only for active series. Missing data is not zero."
        },
        "histogram": {
          "id": "histogram",
          "title": "هیستوگرام",
          "group": "نمودار · تحلیل",
          "fields": [
            "value"
          ],
          "note": "دادهٔ خام؛ بازه‌ها خودکار محاسبه می‌شوند"
        },
        "boxplot": {
          "id": "boxplot",
          "title": "جعبه‌ای",
          "group": "نمودار · تحلیل",
          "fields": [
            "low",
            "value",
            "value2",
            "value3",
            "high"
          ],
          "note": "حداقل، چارک اول، میانه، چارک سوم، حداکثر"
        },
        "candlestick": {
          "id": "candlestick",
          "title": "کندل",
          "group": "نمودار · تحلیل",
          "fields": [
            "open",
            "high",
            "low",
            "close"
          ],
          "note": ""
        },
        "ohlc": {
          "id": "ohlc",
          "title": "قیمت باز/بسته",
          "group": "نمودار · تحلیل",
          "fields": [
            "open",
            "high",
            "low",
            "close"
          ],
          "note": ""
        },
        "process": {
          "id": "process",
          "title": "فرایند افقی",
          "group": "اسمارت · فرایند",
          "fields": [],
          "note": ""
        },
        "verticalProcess": {
          "id": "verticalProcess",
          "title": "فرایند عمودی",
          "group": "اسمارت · فرایند",
          "fields": [],
          "note": ""
        },
        "chevronProcess": {
          "id": "chevronProcess",
          "title": "فرایند پیکانی",
          "group": "اسمارت · فرایند",
          "fields": [],
          "note": ""
        },
        "stepProcess": {
          "id": "stepProcess",
          "title": "فرایند پلکانی",
          "group": "اسمارت · فرایند",
          "fields": [],
          "note": ""
        },
        "snakeProcess": {
          "id": "snakeProcess",
          "title": "مسیر مارپیچ · اسنیک",
          "group": "اسمارت · فرایند",
          "fields": [],
          "note": ""
        },
        "timeline": {
          "id": "timeline",
          "title": "خط زمانی",
          "group": "اسمارت · فرایند",
          "fields": [],
          "note": ""
        },
        "roadmap": {
          "id": "roadmap",
          "title": "نقشهٔ راه",
          "group": "اسمارت · فرایند",
          "fields": [],
          "note": ""
        },
        "cycle": {
          "id": "cycle",
          "title": "چرخهٔ بسته",
          "group": "اسمارت · چرخه",
          "fields": [],
          "note": ""
        },
        "radialCycle": {
          "id": "radialCycle",
          "title": "چرخهٔ شعاعی",
          "group": "اسمارت · چرخه",
          "fields": [],
          "note": ""
        },
        "segmentedCycle": {
          "id": "segmentedCycle",
          "title": "چرخهٔ بخش‌بندی‌شده",
          "group": "اسمارت · چرخه",
          "fields": [],
          "note": ""
        },
        "orgChart": {
          "id": "orgChart",
          "title": "چارت سازمانی",
          "group": "اسمارت · سلسله‌مراتب",
          "fields": [
            "parent"
          ],
          "note": ""
        },
        "tree": {
          "id": "tree",
          "title": "درخت عمودی",
          "group": "اسمارت · سلسله‌مراتب",
          "fields": [
            "parent"
          ],
          "note": ""
        },
        "horizontalTree": {
          "id": "horizontalTree",
          "title": "درخت افقی",
          "group": "اسمارت · سلسله‌مراتب",
          "fields": [
            "parent"
          ],
          "note": ""
        },
        "decisionTree": {
          "id": "decisionTree",
          "title": "درخت تصمیم",
          "group": "اسمارت · سلسله‌مراتب",
          "fields": [
            "parent"
          ],
          "note": ""
        },
        "pictureHierarchy": {
          "id": "pictureHierarchy",
          "title": "سلسله‌مراتب تصویری",
          "group": "اسمارت · سلسله‌مراتب",
          "fields": [
            "parent",
            "image"
          ],
          "note": ""
        },
        "radial": {
          "id": "radial",
          "title": "رابطهٔ شعاعی",
          "group": "اسمارت · رابطه",
          "fields": [],
          "note": ""
        },
        "venn": {
          "id": "venn",
          "title": "ون · هم‌پوشانی",
          "group": "اسمارت · رابطه",
          "fields": [],
          "note": ""
        },
        "target": {
          "id": "target",
          "title": "هدف و لایه‌ها",
          "group": "اسمارت · رابطه",
          "fields": [],
          "note": ""
        },
        "balance": {
          "id": "balance",
          "title": "توازن دوطرفه",
          "group": "اسمارت · رابطه",
          "fields": [],
          "note": ""
        },
        "equation": {
          "id": "equation",
          "title": "معادلهٔ تصویری",
          "group": "اسمارت · رابطه",
          "fields": [],
          "note": ""
        },
        "matrix": {
          "id": "matrix",
          "title": "ماتریس چهارخانه",
          "group": "اسمارت · ماتریس",
          "fields": [],
          "note": ""
        },
        "titledMatrix": {
          "id": "titledMatrix",
          "title": "ماتریس با عنوان مرکزی",
          "group": "اسمارت · ماتریس",
          "fields": [],
          "note": ""
        },
        "cycleMatrix": {
          "id": "cycleMatrix",
          "title": "ماتریس چرخه‌ای",
          "group": "اسمارت · ماتریس",
          "fields": [],
          "note": ""
        },
        "gridMatrix": {
          "id": "gridMatrix",
          "title": "ماتریس شبکه‌ای",
          "group": "اسمارت · ماتریس",
          "fields": [],
          "note": ""
        },
        "pyramid": {
          "id": "pyramid",
          "title": "هرم",
          "group": "اسمارت · هرم",
          "fields": [],
          "note": ""
        },
        "invertedPyramid": {
          "id": "invertedPyramid",
          "title": "هرم وارونه",
          "group": "اسمارت · هرم",
          "fields": [],
          "note": ""
        },
        "pyramidList": {
          "id": "pyramidList",
          "title": "هرم همراه فهرست",
          "group": "اسمارت · هرم",
          "fields": [],
          "note": ""
        },
        "list": {
          "id": "list",
          "title": "فهرست باکسی",
          "group": "اسمارت · فهرست",
          "fields": [],
          "note": ""
        },
        "numberedList": {
          "id": "numberedList",
          "title": "فهرست شماره‌دار",
          "group": "اسمارت · فهرست",
          "fields": [],
          "note": ""
        },
        "groupedList": {
          "id": "groupedList",
          "title": "فهرست گروه‌بندی‌شده",
          "group": "اسمارت · فهرست",
          "fields": [
            "parent"
          ],
          "note": ""
        },
        "pictureList": {
          "id": "pictureList",
          "title": "فهرست تصویری",
          "group": "اسمارت · فهرست",
          "fields": [
            "image"
          ],
          "note": ""
        },
        "pictureGrid": {
          "id": "pictureGrid",
          "title": "شبکهٔ تصویری",
          "group": "اسمارت · فهرست",
          "fields": [
            "image"
          ],
          "note": ""
        },
        "kpi": {
          "id": "kpi",
          "title": "کارت شاخص",
          "group": "اینفوگرافیک",
          "fields": [
            "value"
          ],
          "note": ""
        },
        "comparison": {
          "id": "comparison",
          "title": "مقایسهٔ شاخص‌ها",
          "group": "اینفوگرافیک",
          "fields": [
            "value",
            "value2"
          ],
          "note": ""
        },
        "scorecard": {
          "id": "scorecard",
          "title": "کارت امتیاز",
          "group": "اینفوگرافیک",
          "fields": [
            "value",
            "value2"
          ],
          "note": ""
        },
        "statsRing": {
          "id": "statsRing",
          "title": "حلقه‌های شاخص",
          "group": "اینفوگرافیک",
          "fields": [
            "value",
            "value2"
          ],
          "note": ""
        },
        "milestones": {
          "id": "milestones",
          "title": "نقاط عطف",
          "group": "اینفوگرافیک",
          "fields": [],
          "note": ""
        },
        "swot": {
          "id": "swot",
          "title": "تحلیل SWOT",
          "group": "اینفوگرافیک",
          "fields": [],
          "note": ""
        },
        "network": {
          "id": "network",
          "title": "گراف شبکه‌ای",
          "group": "نمودار · شبکه و رابطه",
          "fields": [
            "value",
            "source",
            "target"
          ],
          "note": "هر ردیف یک ارتباط با وزن مثبت، مبدأ و مقصد؛ چرخه مجاز است. عنوان گره‌ها از مبدأ و مقصد ساخته می‌شود."
        },
        "directedGraph": {
          "id": "directedGraph",
          "title": "گراف جهت‌دار",
          "group": "نمودار · شبکه و رابطه",
          "fields": [
            "value",
            "source",
            "target"
          ],
          "note": "هر ردیف یک ارتباط با وزن مثبت، مبدأ و مقصد؛ چرخه مجاز است. عنوان گره‌ها از مبدأ و مقصد ساخته می‌شود."
        },
        "arcDiagram": {
          "id": "arcDiagram",
          "title": "گراف کمانی",
          "group": "نمودار · شبکه و رابطه",
          "fields": [
            "value",
            "source",
            "target"
          ],
          "note": "هر ردیف یک ارتباط با وزن مثبت، مبدأ و مقصد؛ چرخه مجاز است. عنوان گره‌ها از مبدأ و مقصد ساخته می‌شود."
        },
        "chord": {
          "id": "chord",
          "title": "نمودار ارتباط حلقوی",
          "group": "نمودار · شبکه و رابطه",
          "fields": [
            "value",
            "source",
            "target"
          ],
          "note": "هر ردیف یک ارتباط با وزن مثبت، مبدأ و مقصد؛ چرخه مجاز است. عنوان گره‌ها از مبدأ و مقصد ساخته می‌شود."
        }
      }
    }
  },
  "product": "IO Presents",
  "capabilities": {
    "readFirst": "Read the complete contract and choose exact types and fields from studio26.visuals.registry. Return the full presentation JSON for visual creation. Text-edit responses only modify text. Never fabricate data.",
    "visuals": {
      "types": [
        "line",
        "multiLine",
        "stepLine",
        "area",
        "stackedArea",
        "percentArea",
        "combo",
        "column",
        "bar",
        "groupedColumn",
        "groupedBar",
        "stackedColumn",
        "stackedBar",
        "percentColumn",
        "percentBar",
        "rangeColumn",
        "rangeBar",
        "lollipop",
        "dotPlot",
        "dumbbell",
        "bullet",
        "waterfall",
        "pareto",
        "pie",
        "donut",
        "halfDonut",
        "rose",
        "radialBar",
        "gauge",
        "progress",
        "waffle",
        "treemap",
        "sunburst",
        "funnel",
        "funnelBars",
        "funnelHorizontal",
        "funnelPyramid",
        "sankey",
        "scatter",
        "bubble",
        "radar",
        "radarArea",
        "heatmap",
        "histogram",
        "boxplot",
        "candlestick",
        "ohlc",
        "process",
        "verticalProcess",
        "chevronProcess",
        "stepProcess",
        "snakeProcess",
        "timeline",
        "roadmap",
        "cycle",
        "radialCycle",
        "segmentedCycle",
        "orgChart",
        "tree",
        "horizontalTree",
        "decisionTree",
        "pictureHierarchy",
        "radial",
        "venn",
        "target",
        "balance",
        "equation",
        "matrix",
        "titledMatrix",
        "cycleMatrix",
        "gridMatrix",
        "pyramid",
        "invertedPyramid",
        "pyramidList",
        "list",
        "numberedList",
        "groupedList",
        "pictureList",
        "pictureGrid",
        "kpi",
        "comparison",
        "scorecard",
        "statsRing",
        "milestones",
        "swot",
        "network",
        "directedGraph",
        "arcDiagram",
        "chord"
      ],
      "count": 89,
      "location": "studio26.visuals",
      "fields": "Use each registry entry fields and note. Numeric data must be finite; graph edges require source,target,value."
    },
    "tables": {
      "location": "studio26.sheet",
      "features": [
        "XLSX/XLS/CSV/TSV local import",
        "optional multi-sheet tabs or single sheet",
        "scroll both axes by default",
        "optional pagination",
        "reversible blank-axis compaction",
        "real merged cells preserved",
        "freeze rows and columns",
        "zoom",
        "widths, number formats, bars, themes",
        "20k rows/256 columns/500k cells per table; workbook1M cells; file50MiB"
      ]
    },
    "design": {
      "features": [
        "slide layouts and typography",
        "flow nodes and connections",
        "image/video/audio media using existing contract fields",
        "chart palettes and custom colors",
        "independent light color and shared motion settings",
        "slide theme and navigation",
        "interactive HTML and offline reader; static Quick Look has stated limits",
        "17 named palettes plus custom; 11 ordered monochromatic families including navy, midnight, steel, emerald, pine, sage. Responsive HTML typography for bars, dumbbells and sequential Smart layouts.",
        "Transparent visual surface and integrated slide layout; compact Smart cards, in-slide navigation for dense content; shared Master/Reader rendering."
      ],
      "schema": "Use existing top-level contract sections for exact supported keys; do not invent fields."
    },
    "exports": "AI creates compatible JSON; the app imports it and performs HTML/desktop export. AI cannot directly trigger app UI or package native binaries."
  },
  "io39_navigation": {
    "website": "https://iopresent.com/",
    "exit": "Save the local project before leaving the online Studio. Offline files retain the project and open the website externally."
  }
}
