{
  "version": 1,
  "phase": "familiar-baselines",
  "scoreBasis": "editorial assessment, not measured AI capability",
  "scoreFormula": "0.6 * visual + 0.4 * ease, rounded",
  "defaults": {
    "theme": "light",
    "accent": "blue",
    "radius": 8,
    "strokeWidth": 1.5,
    "fontScale": 1,
    "font": "sans",
    "grid": false
  },
  "families": [
    "Architecture",
    "Flows",
    "Sequences",
    "Data structures",
    "Charts",
    "Time & planning",
    "Developer surfaces"
  ],
  "recipes": [
    {
      "id": "service-architecture",
      "name": "Service architecture",
      "family": "Architecture",
      "description": "Show the boundaries and connections in a small system.",
      "useWhen": "Explain a request moving from a client through services to storage.",
      "avoidWhen": "You need to show timing, retries, or more than twelve services.",
      "visual": 92,
      "ease": 94,
      "rationale": "Few aligned nodes; labels and boundaries can change without rerouting most edges.",
      "primitives": [
        "Boundary",
        "Node",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 93,
      "page": "/diagrams/service-architecture/",
      "scene": "/api/scenes/service-architecture.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "layered-stack",
      "name": "Layered stack",
      "family": "Architecture",
      "description": "Separate a system into responsibilities.",
      "useWhen": "Explain which layer owns presentation, business rules, and storage.",
      "avoidWhen": "Calls skip layers or dependency direction is the main question.",
      "visual": 90,
      "ease": 96,
      "rationale": "Repeated bands provide strong alignment and a small editing surface.",
      "primitives": [
        "Band",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 92,
      "page": "/diagrams/layered-stack/",
      "scene": "/api/scenes/layered-stack.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "deployment-topology",
      "name": "Deployment topology",
      "family": "Architecture",
      "description": "Group running services by region and zone.",
      "useWhen": "Document redundancy across two availability zones.",
      "avoidWhen": "You need geographic accuracy or live infrastructure discovery.",
      "visual": 88,
      "ease": 82,
      "rationale": "Boundaries clarify placement; adding zones requires a layout pass.",
      "primitives": [
        "Boundary",
        "Node",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 86,
      "page": "/diagrams/deployment-topology/",
      "scene": "/api/scenes/deployment-topology.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "hub-and-spoke",
      "name": "Hub and spoke",
      "family": "Architecture",
      "description": "Put one shared dependency at the center.",
      "useWhen": "Show clients connected to a single event bus or platform.",
      "avoidWhen": "Relationships between the outer nodes matter.",
      "visual": 87,
      "ease": 87,
      "rationale": "The radial shape is readable with four spokes; more nodes need spacing work.",
      "primitives": [
        "Node",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 87,
      "page": "/diagrams/hub-and-spoke/",
      "scene": "/api/scenes/hub-and-spoke.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "decision-flow",
      "name": "Decision flow",
      "family": "Flows",
      "description": "Branch a process around an explicit condition.",
      "useWhen": "Explain one decision and the two paths that follow.",
      "avoidWhen": "You have many nested decisions or need execution timing.",
      "visual": 91,
      "ease": 86,
      "rationale": "The diamond makes branching explicit; longer condition text needs care.",
      "primitives": [
        "Node",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 89,
      "page": "/diagrams/decision-flow/",
      "scene": "/api/scenes/decision-flow.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "pipeline",
      "name": "Processing pipeline",
      "family": "Flows",
      "description": "Walk through ordered transformations.",
      "useWhen": "Explain how input passes through a sequence of processing stages.",
      "avoidWhen": "Stages run in parallel or loop back.",
      "visual": 94,
      "ease": 96,
      "rationale": "A single reading direction and reusable steps make this a dependable baseline.",
      "primitives": [
        "Node",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 95,
      "page": "/diagrams/pipeline/",
      "scene": "/api/scenes/pipeline.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "swimlanes",
      "name": "Swimlane process",
      "family": "Flows",
      "description": "Assign each action to an owner.",
      "useWhen": "Show handoffs between a user, API, and worker.",
      "avoidWhen": "You only need a list of steps without ownership.",
      "visual": 88,
      "ease": 78,
      "rationale": "Ownership bands help scanning; edits across lanes may require connector routing.",
      "primitives": [
        "Lane",
        "Node",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 84,
      "page": "/diagrams/swimlanes/",
      "scene": "/api/scenes/swimlanes.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "state-machine",
      "name": "State machine",
      "family": "Flows",
      "description": "Name valid states and the events that change them.",
      "useWhen": "Explain a job moving through queued, running, and terminal states.",
      "avoidWhen": "You need timing or probabilities for transitions.",
      "visual": 89,
      "ease": 82,
      "rationale": "Named transitions carry meaning; feedback loops add routing work.",
      "primitives": [
        "Node",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 86,
      "page": "/diagrams/state-machine/",
      "scene": "/api/scenes/state-machine.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "request-sequence",
      "name": "Request sequence",
      "family": "Sequences",
      "description": "Follow messages between participants over time.",
      "useWhen": "Explain an API request, database lookup, and response.",
      "avoidWhen": "You need precise duration; use a trace waterfall instead.",
      "visual": 93,
      "ease": 88,
      "rationale": "Clear lifelines and direct message labels; adding messages only shifts rows.",
      "primitives": [
        "Lifeline",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 91,
      "page": "/diagrams/request-sequence/",
      "scene": "/api/scenes/request-sequence.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "retry-backoff",
      "name": "Retry with backoff",
      "family": "Sequences",
      "description": "Show failed attempts and increasing wait intervals.",
      "useWhen": "Document a capped retry policy for a transient failure.",
      "avoidWhen": "You need an exact time scale or a full error-handling state machine.",
      "visual": 86,
      "ease": 90,
      "rationale": "Few participants keep it readable; changing timing means editing labels.",
      "primitives": [
        "Lifeline",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 88,
      "page": "/diagrams/retry-backoff/",
      "scene": "/api/scenes/retry-backoff.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "trace-waterfall",
      "name": "Trace waterfall",
      "family": "Sequences",
      "description": "Compare span start times and durations.",
      "useWhen": "Locate a slow operation within one request trace.",
      "avoidWhen": "You cannot obtain comparable timestamps.",
      "visual": 95,
      "ease": 84,
      "rationale": "Aligned time spans make bottlenecks visible; data changes require proportional widths.",
      "primitives": [
        "Axis",
        "Band",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 91,
      "page": "/diagrams/trace-waterfall/",
      "scene": "/api/scenes/trace-waterfall.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "async-fanout",
      "name": "Async fan-out",
      "family": "Sequences",
      "description": "Show one event starting independent operations.",
      "useWhen": "Explain parallel consumers and their individual acknowledgements.",
      "avoidWhen": "Consumers have dependencies on each other.",
      "visual": 89,
      "ease": 83,
      "rationale": "Branching conveys concurrency; extra consumers need room for labels.",
      "primitives": [
        "Node",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 87,
      "page": "/diagrams/async-fanout/",
      "scene": "/api/scenes/async-fanout.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "entity-relationship",
      "name": "Entity relationship",
      "family": "Data structures",
      "description": "Explain tables, keys, and their relationships.",
      "useWhen": "Document a compact relational schema with cardinality labels.",
      "avoidWhen": "You need a complete schema with dozens of tables.",
      "visual": 92,
      "ease": 83,
      "rationale": "Table rows are easy to change; relation endpoints need attention when tables grow.",
      "primitives": [
        "Entity",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 88,
      "page": "/diagrams/entity-relationship/",
      "scene": "/api/scenes/entity-relationship.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "object-tree",
      "name": "Object tree",
      "family": "Data structures",
      "description": "Expand a hierarchy without losing parent context.",
      "useWhen": "Explain a JSON document or nested configuration structure.",
      "avoidWhen": "Most relationships are many-to-many.",
      "visual": 86,
      "ease": 95,
      "rationale": "Indented text is cheap to edit and handles hierarchy without complex geometry.",
      "primitives": [
        "Text block",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 90,
      "page": "/diagrams/object-tree/",
      "scene": "/api/scenes/object-tree.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "linked-list",
      "name": "Linked list",
      "family": "Data structures",
      "description": "Show pointers and a terminal value.",
      "useWhen": "Teach next pointers or a simple chain of records.",
      "avoidWhen": "You need random access or complex cyclic references.",
      "visual": 84,
      "ease": 94,
      "rationale": "Repeated records and short links make content changes predictable.",
      "primitives": [
        "Node",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 88,
      "page": "/diagrams/linked-list/",
      "scene": "/api/scenes/linked-list.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "matrix",
      "name": "Relationship matrix",
      "family": "Data structures",
      "description": "Compare relationships across two sets.",
      "useWhen": "Show which roles can perform which actions.",
      "avoidWhen": "Readers must follow a path or a sequence.",
      "visual": 88,
      "ease": 94,
      "rationale": "Rows and columns scale well; text and symbols carry meaning without color.",
      "primitives": [
        "Matrix",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 90,
      "page": "/diagrams/matrix/",
      "scene": "/api/scenes/matrix.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "line-chart",
      "name": "Line chart",
      "family": "Charts",
      "description": "Compare a measured value over an ordered axis.",
      "useWhen": "Show a metric changing over time with labeled units.",
      "avoidWhen": "Samples are unordered categories or missing intervals mislead.",
      "visual": 91,
      "ease": 87,
      "rationale": "A restrained axis and direct series label help; recompute geometry when values change.",
      "primitives": [
        "Axis",
        "Series",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 89,
      "page": "/diagrams/line-chart/",
      "scene": "/api/scenes/line-chart.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "bar-chart",
      "name": "Horizontal bar chart",
      "family": "Charts",
      "description": "Compare categories on a shared baseline.",
      "useWhen": "Rank comparable counts with a zero baseline.",
      "avoidWhen": "Values represent parts of a single whole or a timeline.",
      "visual": 93,
      "ease": 92,
      "rationale": "Direct labels and a common origin make comparisons and edits straightforward.",
      "primitives": [
        "Axis",
        "Band",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 93,
      "page": "/diagrams/bar-chart/",
      "scene": "/api/scenes/bar-chart.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "donut-chart",
      "name": "Donut chart",
      "family": "Charts",
      "description": "Show a small number of parts of a whole.",
      "useWhen": "Show one dominant proportion and its complement.",
      "avoidWhen": "Readers need precise comparisons across several small slices.",
      "visual": 83,
      "ease": 75,
      "rationale": "Compact and recognizable, but changing proportions requires recomputing arcs.",
      "primitives": [
        "Series",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 80,
      "page": "/diagrams/donut-chart/",
      "scene": "/api/scenes/donut-chart.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "heatmap",
      "name": "Heatmap",
      "family": "Charts",
      "description": "Reveal concentration across a two-dimensional grid.",
      "useWhen": "Scan relative workload by day and time bucket.",
      "avoidWhen": "Readers need exact values or a color-free comparison.",
      "visual": 87,
      "ease": 84,
      "rationale": "A regular grid edits well; intensity needs a legend and textual values.",
      "primitives": [
        "Matrix",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 86,
      "page": "/diagrams/heatmap/",
      "scene": "/api/scenes/heatmap.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "release-timeline",
      "name": "Release timeline",
      "family": "Time & planning",
      "description": "Place milestones along a readable horizontal track.",
      "useWhen": "Explain ordered release milestones without implying precise durations.",
      "avoidWhen": "The spacing must encode elapsed time.",
      "visual": 91,
      "ease": 95,
      "rationale": "Short milestone labels and one track are easy to adapt.",
      "primitives": [
        "Axis",
        "Marker",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 93,
      "page": "/diagrams/release-timeline/",
      "scene": "/api/scenes/release-timeline.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "gantt",
      "name": "Gantt chart",
      "family": "Time & planning",
      "description": "Compare scheduled work on a shared time axis.",
      "useWhen": "Explain overlapping tasks with planned start and end dates.",
      "avoidWhen": "Dates are unknown or you need interactive project management.",
      "visual": 89,
      "ease": 82,
      "rationale": "Overlap is visible; editing dates requires moving and resizing bars.",
      "primitives": [
        "Axis",
        "Band",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 86,
      "page": "/diagrams/gantt/",
      "scene": "/api/scenes/gantt.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "git-branches",
      "name": "Git branches",
      "family": "Time & planning",
      "description": "Follow commits and a merge across branches.",
      "useWhen": "Explain one feature branch merging into main.",
      "avoidWhen": "The history contains many branches or a complex rebase.",
      "visual": 90,
      "ease": 85,
      "rationale": "Two tracks keep history legible; extra merges need custom routing.",
      "primitives": [
        "Track",
        "Marker",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 88,
      "page": "/diagrams/git-branches/",
      "scene": "/api/scenes/git-branches.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "dependency-dag",
      "name": "Dependency graph",
      "family": "Time & planning",
      "description": "Show prerequisites and parallel work.",
      "useWhen": "Explain a small directed acyclic build graph.",
      "avoidWhen": "Cycles are allowed or the graph has too many crossing edges.",
      "visual": 88,
      "ease": 79,
      "rationale": "Parallel paths are clear; adding dependencies can create edge crossings.",
      "primitives": [
        "Node",
        "Connector",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 84,
      "page": "/diagrams/dependency-dag/",
      "scene": "/api/scenes/dependency-dag.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "terminal",
      "name": "Terminal transcript",
      "family": "Developer surfaces",
      "description": "Present commands and their output as readable text.",
      "useWhen": "Show a short command-line workflow with expected output.",
      "avoidWhen": "The reader needs a real shell or commands contain credentials.",
      "visual": 95,
      "ease": 98,
      "rationale": "Text is the editing surface; no imitation window controls compete with the commands.",
      "primitives": [
        "Text block",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 96,
      "page": "/diagrams/terminal/",
      "scene": "/api/scenes/terminal.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "code-block",
      "name": "Annotated code",
      "family": "Developer surfaces",
      "description": "Pair a short code sample with an explanation.",
      "useWhen": "Explain one function and highlight its important return value.",
      "avoidWhen": "The example needs execution or a full editor.",
      "visual": 94,
      "ease": 98,
      "rationale": "Line-based content is easy to replace; annotations stay separate from source.",
      "primitives": [
        "Text block",
        "Annotation",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 96,
      "page": "/diagrams/code-block/",
      "scene": "/api/scenes/code-block.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "code-diff",
      "name": "Code diff",
      "family": "Developer surfaces",
      "description": "Explain a change through added and removed lines.",
      "useWhen": "Document a small behavior change in a code review or changelog.",
      "avoidWhen": "The diff is too large to read without scrolling.",
      "visual": 96,
      "ease": 98,
      "rationale": "Explicit plus and minus prefixes preserve meaning in monochrome and simplify editing.",
      "primitives": [
        "Text block",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 97,
      "page": "/diagrams/code-diff/",
      "scene": "/api/scenes/code-diff.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "ide-layout",
      "name": "Editor with file tree",
      "family": "Developer surfaces",
      "description": "Show how source files relate to the active code.",
      "useWhen": "Orient a reader in a small project and explain one file.",
      "avoidWhen": "You need a working IDE, execution, or an exact branded screenshot.",
      "visual": 91,
      "ease": 90,
      "rationale": "File tree and code are independently editable; narrow layouts need more space.",
      "primitives": [
        "Panel",
        "Text block",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 91,
      "page": "/diagrams/ide-layout/",
      "scene": "/api/scenes/ide-layout.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "file-tree",
      "name": "File tree",
      "family": "Developer surfaces",
      "description": "Document the location and purpose of project files.",
      "useWhen": "Help a reader find the file they should edit.",
      "avoidWhen": "File relationships are dynamic or cross-cut several directories.",
      "visual": 88,
      "ease": 99,
      "rationale": "Plain text survives theme changes and requires no layout calculations.",
      "primitives": [
        "Text block",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 92,
      "page": "/diagrams/file-tree/",
      "scene": "/api/scenes/file-tree.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "http-exchange",
      "name": "HTTP exchange",
      "family": "Developer surfaces",
      "description": "Put a request next to its response.",
      "useWhen": "Explain an endpoint with headers, status, and a short payload.",
      "avoidWhen": "The API needs a full schema or interactive request execution.",
      "visual": 92,
      "ease": 95,
      "rationale": "Two text panels are easy to customize; long payloads should move to reference docs.",
      "primitives": [
        "Panel",
        "Text block",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 93,
      "page": "/diagrams/http-exchange/",
      "scene": "/api/scenes/http-exchange.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "log-stream",
      "name": "Structured logs",
      "family": "Developer surfaces",
      "description": "Make a short diagnostic sequence scannable.",
      "useWhen": "Explain how log events reveal a single request failure.",
      "avoidWhen": "You need a live log viewer or arbitrary-volume filtering.",
      "visual": 90,
      "ease": 97,
      "rationale": "Fixed text columns and explicit severity labels keep edits simple.",
      "primitives": [
        "Text block",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 93,
      "page": "/diagrams/log-stream/",
      "scene": "/api/scenes/log-stream.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    },
    {
      "id": "test-results",
      "name": "Test results",
      "family": "Developer surfaces",
      "description": "Summarize test cases with readable outcomes.",
      "useWhen": "Illustrate a test run and call attention to one failure.",
      "avoidWhen": "The reader needs real CI results or interactive failure inspection.",
      "visual": 89,
      "ease": 97,
      "rationale": "Explicit status words carry the state; the structure needs only text edits.",
      "primitives": [
        "Text block",
        "Label"
      ],
      "reviewed": "2026-09-07",
      "revision": 1,
      "status": "baseline",
      "overall": 92,
      "page": "/diagrams/test-results/",
      "scene": "/api/scenes/test-results.json",
      "parameters": "/docs/customization/",
      "schema": "/docs/primitives/"
    }
  ]
}