{
  "schema": "2.0",
  "document": {
    "schema": "2.0",
    "key": "quant-robots",
    "locale": "en",
    "path": "/quant/robots",
    "url": "https://oxarus.com/en/quant/robots",
    "alternates": {
      "tr": "https://oxarus.com/tr/quant/robots",
      "en": "https://oxarus.com/en/quant/robots"
    },
    "unit": "quant",
    "status": "live",
    "parent": "quant",
    "order": 13,
    "label": "Custom Robots",
    "title": "Custom MetaTrader 5 trading robot development · Oxarus Quant",
    "description": "Tell us how you enter, manage and exit a trade, and we'll write a robot, indicator or panel for MetaTrader 5 built for you alone.",
    "breadcrumbs": [
      {
        "label": "Oxarus home",
        "path": "/",
        "url": "https://oxarus.com/en"
      },
      {
        "label": "Oxarus Quant",
        "path": "/quant",
        "url": "https://oxarus.com/en/quant"
      },
      {
        "label": "Custom Robots",
        "path": "/quant/robots",
        "url": "https://oxarus.com/en/quant/robots"
      }
    ],
    "sections": [
      {
        "id": "hero",
        "url": "https://oxarus.com/en/quant/robots",
        "kind": "hero",
        "component": "RobotsHero",
        "sources": [
          "messages:quantRobots.hero"
        ],
        "eyebrow": "QUANT · CUSTOM ROBOTS",
        "title": "your rules, run by a robot.",
        "lead": "Have a method you've been running by hand for years? Walk us through your entry, stop, trade management and exit rules. We'll write a MetaTrader 5 robot built for you alone.",
        "demo": true,
        "placeholder": false,
        "blocks": [
          {
            "type": "actions",
            "items": [
              {
                "label": "Describe your strategy",
                "action": "open_page",
                "args": {
                  "path": "/quant/robots",
                  "anchor": "cta-heading"
                },
                "href": "/en/quant/robots#cta-heading",
                "source": "messages:quantRobots.hero.primary"
              },
              {
                "label": "How to describe it",
                "action": "open_page",
                "args": {
                  "path": "/quant/robots",
                  "anchor": "brief"
                },
                "href": "/en/quant/robots#brief",
                "source": "messages:quantRobots.hero.secondary"
              }
            ],
            "source": "messages:quantRobots.hero.primary"
          },
          {
            "type": "list",
            "style": "bullet",
            "items": [
              "Your strategy, coded for you alone",
              "Specification first, code second",
              "We work under an NDA"
            ],
            "source": "messages:quantRobots.hero.checks"
          },
          {
            "type": "list",
            "style": "ordered",
            "items": [
              "Your rules",
              "Code",
              "On the chart"
            ],
            "source": "messages:quantRobots.hero.steps"
          },
          {
            "type": "demo",
            "representative": true,
            "caption": "Representative screen. Not investment advice.",
            "blocks": [
              {
                "type": "group",
                "key": "demo",
                "blocks": [
                  {
                    "type": "definitions",
                    "items": [
                      {
                        "label": "window",
                        "value": "MetaTrader 5",
                        "source": "messages:quantRobots.hero.demo.window"
                      },
                      {
                        "label": "symbol",
                        "value": "EURUSD · H1",
                        "source": "messages:quantRobots.hero.demo.symbol"
                      },
                      {
                        "label": "briefTitle",
                        "value": "Client notes",
                        "source": "messages:quantRobots.hero.demo.briefTitle"
                      }
                    ],
                    "source": "messages:quantRobots.hero.demo.window"
                  },
                  {
                    "type": "cards",
                    "items": [
                      {
                        "id": "0",
                        "source": "messages:quantRobots.hero.demo.rules.0",
                        "eyebrow": "Entry",
                        "fields": [
                          {
                            "label": "text",
                            "value": "With price above the 50 EMA, buy when a green candle engulfs the red one.",
                            "source": "messages:quantRobots.hero.demo.rules.0.text"
                          }
                        ]
                      },
                      {
                        "id": "1",
                        "source": "messages:quantRobots.hero.demo.rules.1",
                        "eyebrow": "Stop",
                        "fields": [
                          {
                            "label": "text",
                            "value": "Stop 5 pips below the last swing low.",
                            "source": "messages:quantRobots.hero.demo.rules.1.text"
                          }
                        ]
                      },
                      {
                        "id": "2",
                        "source": "messages:quantRobots.hero.demo.rules.2",
                        "eyebrow": "Manage",
                        "fields": [
                          {
                            "label": "text",
                            "value": "Once 20 pips in favor, move the stop to break-even, then trail it 15 pips behind.",
                            "source": "messages:quantRobots.hero.demo.rules.2.text"
                          }
                        ]
                      },
                      {
                        "id": "3",
                        "source": "messages:quantRobots.hero.demo.rules.3",
                        "eyebrow": "Risk",
                        "fields": [
                          {
                            "label": "text",
                            "value": "1% of balance per trade. No new trades during news hours.",
                            "source": "messages:quantRobots.hero.demo.rules.3.text"
                          }
                        ]
                      }
                    ],
                    "source": "messages:quantRobots.hero.demo.rules"
                  },
                  {
                    "type": "definitions",
                    "items": [
                      {
                        "label": "file",
                        "value": "ClientTrendPullback.mq5",
                        "source": "messages:quantRobots.hero.demo.file"
                      },
                      {
                        "label": "running",
                        "value": "Robot running",
                        "source": "messages:quantRobots.hero.demo.running"
                      },
                      {
                        "label": "entry",
                        "value": "Buy",
                        "source": "messages:quantRobots.hero.demo.entry"
                      },
                      {
                        "label": "sl",
                        "value": "Stop",
                        "source": "messages:quantRobots.hero.demo.sl"
                      },
                      {
                        "label": "be",
                        "value": "Break-even",
                        "source": "messages:quantRobots.hero.demo.be"
                      },
                      {
                        "label": "trail",
                        "value": "Trailing stop",
                        "source": "messages:quantRobots.hero.demo.trail"
                      }
                    ],
                    "source": "messages:quantRobots.hero.demo.file"
                  },
                  {
                    "type": "list",
                    "style": "tags",
                    "items": [
                      "File",
                      "View",
                      "Insert",
                      "Charts",
                      "Tools",
                      "Window",
                      "Help"
                    ],
                    "source": "messages:quantRobots.hero.demo.menu"
                  },
                  {
                    "type": "list",
                    "style": "tags",
                    "items": [
                      "M1",
                      "M5",
                      "M15",
                      "M30",
                      "H1",
                      "H4",
                      "D1",
                      "W1",
                      "MN"
                    ],
                    "source": "messages:quantRobots.hero.demo.timeframes"
                  },
                  {
                    "type": "definitions",
                    "items": [
                      {
                        "label": "algo",
                        "value": "Algo Trading",
                        "source": "messages:quantRobots.hero.demo.algo"
                      }
                    ],
                    "source": "messages:quantRobots.hero.demo.algo"
                  },
                  {
                    "type": "list",
                    "style": "bullet",
                    "items": [
                      "Trade",
                      "Exposure",
                      "History",
                      "Journal",
                      "Experts"
                    ],
                    "source": "messages:quantRobots.hero.demo.toolboxTabs"
                  },
                  {
                    "type": "definitions",
                    "items": [
                      {
                        "label": "waiting",
                        "value": "Waiting for the approved specification…",
                        "source": "messages:quantRobots.hero.demo.waiting"
                      }
                    ],
                    "source": "messages:quantRobots.hero.demo.waiting"
                  },
                  {
                    "type": "list",
                    "style": "bullet",
                    "items": [
                      "compiling ClientTrendPullback.mq5",
                      "including RiskSizing.mqh, NewsWindow.mqh",
                      "0 errors, 0 warnings, 312 msec elapsed"
                    ],
                    "source": "messages:quantRobots.hero.demo.compile"
                  },
                  {
                    "type": "list",
                    "style": "bullet",
                    "items": [
                      "ClientTrendPullback (EURUSD,H1) initialized",
                      "entry condition met: bullish engulfing above EMA(50)",
                      "order #1042 buy 0.42 EURUSD at 1.08736, sl 1.08512",
                      "position #1042 stop moved to break-even 1.08736",
                      "position #1042 trailing stop 1.08921"
                    ],
                    "source": "messages:quantRobots.hero.demo.journal"
                  }
                ],
                "source": "messages:quantRobots.hero.demo"
              }
            ],
            "source": "messages:quantRobots.hero.demo"
          }
        ]
      },
      {
        "id": "builder",
        "anchor": "brief",
        "url": "https://oxarus.com/en/quant/robots#brief",
        "kind": "content",
        "component": "StrategyBuilder",
        "sources": [
          "messages:quantRobots.builder"
        ],
        "eyebrow": "SPECIFICATION",
        "title": "just describe it.",
        "lead": "No coding required. Pick your rules or add one in your own words; the robot's specification, its MetaTrader inputs and the test list update as you choose.",
        "demo": false,
        "placeholder": false,
        "blocks": [
          {
            "type": "cards",
            "items": [
              {
                "id": "entry",
                "source": "messages:quantRobots.builder.groups.0",
                "title": "How should it enter a trade?",
                "blocks": [
                  {
                    "type": "list",
                    "style": "bullet",
                    "items": [
                      "Moving average crossover",
                      "Support / resistance breakout",
                      "At a set time, on a set condition"
                    ],
                    "source": "messages:quantRobots.builder.groups.0.options"
                  }
                ]
              },
              {
                "id": "exit",
                "source": "messages:quantRobots.builder.groups.1",
                "title": "How should the trade be managed?",
                "blocks": [
                  {
                    "type": "list",
                    "style": "bullet",
                    "items": [
                      "Fixed stop and target",
                      "Break-even, then trailing stop",
                      "Partial take-profits"
                    ],
                    "source": "messages:quantRobots.builder.groups.1.options"
                  }
                ]
              },
              {
                "id": "risk",
                "source": "messages:quantRobots.builder.groups.2",
                "title": "Position size?",
                "blocks": [
                  {
                    "type": "list",
                    "style": "bullet",
                    "items": [
                      "Fixed lot",
                      "Percent of balance"
                    ],
                    "source": "messages:quantRobots.builder.groups.2.options"
                  }
                ]
              },
              {
                "id": "filter",
                "source": "messages:quantRobots.builder.groups.3",
                "title": "When should it stay out?",
                "blocks": [
                  {
                    "type": "list",
                    "style": "bullet",
                    "items": [
                      "Around major news releases",
                      "During the Asian session",
                      "Friday evening"
                    ],
                    "source": "messages:quantRobots.builder.groups.3.options"
                  }
                ]
              }
            ],
            "source": "messages:quantRobots.builder.groups"
          },
          {
            "type": "group",
            "key": "spec",
            "title": "Specification",
            "blocks": [
              {
                "type": "list",
                "style": "bullet",
                "items": [
                  "A buy opens when the fast average crosses above the slow one; a sell opens when it crosses below.",
                  "A buy opens when price closes above the highest high of the last 20 candles; a sell opens when it closes below the lowest low.",
                  "At the set time, a single trade opens if the defined condition is met."
                ],
                "source": "messages:quantRobots.builder.spec.entry"
              },
              {
                "type": "list",
                "style": "bullet",
                "items": [
                  "Every trade opens with a fixed stop and a fixed target.",
                  "Once price moves in favor, the stop moves to the entry level, then trails at a set distance.",
                  "Part of the position closes at the first target, and the rest at the second."
                ],
                "source": "messages:quantRobots.builder.spec.exit"
              },
              {
                "type": "list",
                "style": "bullet",
                "items": [
                  "Every trade opens with the set fixed lot.",
                  "Lot size is calculated from the stop distance so each trade risks the set percentage of balance."
                ],
                "source": "messages:quantRobots.builder.spec.risk"
              },
              {
                "type": "list",
                "style": "bullet",
                "items": [
                  "No new trades from 30 minutes before to 30 minutes after major news.",
                  "No new trades during the Asian session.",
                  "No new trades after 20:00 on Friday."
                ],
                "source": "messages:quantRobots.builder.spec.filter"
              }
            ],
            "source": "messages:quantRobots.builder.spec"
          },
          {
            "type": "heading",
            "text": "MetaTrader inputs",
            "level": 4,
            "source": "messages:quantRobots.builder.inputsTitle"
          },
          {
            "type": "heading",
            "text": "How the rules play out on the chart",
            "level": 4,
            "source": "messages:quantRobots.builder.previewTitle"
          },
          {
            "type": "list",
            "style": "bullet",
            "items": [
              "The conditions under which the robot enters",
              "How an open trade is protected and closed",
              "How much is risked on each trade",
              "Optional: times to stay out of the market"
            ],
            "source": "messages:quantRobots.builder.groupHints"
          },
          {
            "type": "cards",
            "items": [
              {
                "id": "custom",
                "source": "messages:quantRobots.builder.custom",
                "title": "Your own rule",
                "eyebrow": "clarified on the call",
                "fields": [
                  {
                    "label": "placeholder",
                    "value": "e.g. Close all trades at the Friday close",
                    "source": "messages:quantRobots.builder.custom.placeholder"
                  },
                  {
                    "label": "clear",
                    "value": "Clear",
                    "source": "messages:quantRobots.builder.custom.clear"
                  }
                ]
              }
            ],
            "source": "messages:quantRobots.builder.custom"
          },
          {
            "type": "group",
            "key": "tests",
            "title": "Behavior tests",
            "blocks": [
              {
                "type": "definitions",
                "items": [
                  {
                    "label": "state",
                    "value": "ready to test",
                    "source": "messages:quantRobots.builder.testsState"
                  }
                ],
                "source": "messages:quantRobots.builder.testsState"
              }
            ],
            "source": "messages:quantRobots.builder.tests"
          },
          {
            "type": "labels",
            "items": [
              {
                "label": "meterLabel",
                "value": "Specification completeness",
                "source": "messages:quantRobots.builder.meterLabel"
              },
              {
                "label": "updatedLabel",
                "value": "updated",
                "source": "messages:quantRobots.builder.updatedLabel"
              },
              {
                "label": "hint",
                "value": "Optional: a rule the options don't cover",
                "source": "messages:quantRobots.builder.custom.hint"
              }
            ],
            "source": "messages:quantRobots.builder"
          }
        ]
      },
      {
        "id": "journey",
        "anchor": "journey-heading",
        "url": "https://oxarus.com/en/quant/robots#journey-heading",
        "kind": "steps",
        "component": "RobotJourney",
        "sources": [
          "messages:quantRobots.journey"
        ],
        "eyebrow": "PROCESS",
        "title": "the robot's journey.",
        "lead": "We get your sign-off at the end of every step. No rule goes into the code unless we've agreed on it.",
        "demo": true,
        "placeholder": false,
        "blocks": [
          {
            "type": "steps",
            "items": [
              {
                "id": "0",
                "source": "messages:quantRobots.journey.steps.0",
                "title": "Discovery call",
                "meta": [
                  "NOTES"
                ],
                "text": [
                  "We walk through your method together, using example trades on the chart."
                ],
                "blocks": [
                  {
                    "type": "demo",
                    "representative": true,
                    "caption": "Representative",
                    "blocks": [
                      {
                        "type": "group",
                        "key": "detail",
                        "title": "What this step produces",
                        "blocks": [
                          {
                            "type": "definitions",
                            "items": [
                              {
                                "label": "file",
                                "value": "call-notes.md",
                                "source": "messages:quantRobots.journey.steps.0.detail.file"
                              }
                            ],
                            "source": "messages:quantRobots.journey.steps.0.detail.file"
                          },
                          {
                            "type": "cards",
                            "items": [
                              {
                                "id": "0",
                                "source": "messages:quantRobots.journey.steps.0.detail.rows.0",
                                "eyebrow": "Method",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Buy pullbacks to the 50 EMA in the trend direction",
                                    "source": "messages:quantRobots.journey.steps.0.detail.rows.0.v"
                                  }
                                ]
                              },
                              {
                                "id": "1",
                                "source": "messages:quantRobots.journey.steps.0.detail.rows.1",
                                "eyebrow": "Example trades",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Entries and exits marked on the chart",
                                    "source": "messages:quantRobots.journey.steps.0.detail.rows.1.v"
                                  }
                                ]
                              },
                              {
                                "id": "2",
                                "source": "messages:quantRobots.journey.steps.0.detail.rows.2",
                                "eyebrow": "Open question",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Is the stop measured from the last swing low or the last two?",
                                    "source": "messages:quantRobots.journey.steps.0.detail.rows.2.v"
                                  }
                                ]
                              },
                              {
                                "id": "3",
                                "source": "messages:quantRobots.journey.steps.0.detail.rows.3",
                                "eyebrow": "Open question",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Which calendar defines news hours?",
                                    "source": "messages:quantRobots.journey.steps.0.detail.rows.3.v"
                                  }
                                ]
                              }
                            ],
                            "source": "messages:quantRobots.journey.steps.0.detail.rows"
                          }
                        ],
                        "source": "messages:quantRobots.journey.steps.0.detail"
                      }
                    ],
                    "source": "messages:quantRobots.journey.steps.0.detail"
                  }
                ]
              },
              {
                "id": "1",
                "source": "messages:quantRobots.journey.steps.1",
                "title": "Specification",
                "meta": [
                  "SIGN-OFF"
                ],
                "text": [
                  "Every rule becomes a clear sentence, with nothing left ambiguous. You approve it."
                ],
                "blocks": [
                  {
                    "type": "demo",
                    "representative": true,
                    "caption": "Representative",
                    "blocks": [
                      {
                        "type": "group",
                        "key": "detail",
                        "title": "What this step produces",
                        "blocks": [
                          {
                            "type": "definitions",
                            "items": [
                              {
                                "label": "file",
                                "value": "SPEC-0142 · rev 04",
                                "source": "messages:quantRobots.journey.steps.1.detail.file"
                              }
                            ],
                            "source": "messages:quantRobots.journey.steps.1.detail.file"
                          },
                          {
                            "type": "cards",
                            "items": [
                              {
                                "id": "0",
                                "source": "messages:quantRobots.journey.steps.1.detail.rows.0",
                                "eyebrow": "§1 Entry",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Buy on a bullish engulfing candle above the 50 EMA",
                                    "source": "messages:quantRobots.journey.steps.1.detail.rows.0.v"
                                  }
                                ]
                              },
                              {
                                "id": "1",
                                "source": "messages:quantRobots.journey.steps.1.detail.rows.1",
                                "eyebrow": "§2 Stop",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "5 pips below the last swing low",
                                    "source": "messages:quantRobots.journey.steps.1.detail.rows.1.v"
                                  }
                                ]
                              },
                              {
                                "id": "2",
                                "source": "messages:quantRobots.journey.steps.1.detail.rows.2",
                                "eyebrow": "§3 Manage",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Break-even after 20 pips, then a 15-pip trailing stop",
                                    "source": "messages:quantRobots.journey.steps.1.detail.rows.2.v"
                                  }
                                ]
                              },
                              {
                                "id": "3",
                                "source": "messages:quantRobots.journey.steps.1.detail.rows.3",
                                "eyebrow": "§4 Risk",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "1% of balance per trade; no new trades during news hours",
                                    "source": "messages:quantRobots.journey.steps.1.detail.rows.3.v"
                                  }
                                ]
                              },
                              {
                                "id": "4",
                                "source": "messages:quantRobots.journey.steps.1.detail.rows.4",
                                "eyebrow": "Sign-off",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Approved by the client",
                                    "source": "messages:quantRobots.journey.steps.1.detail.rows.4.v"
                                  }
                                ]
                              }
                            ],
                            "source": "messages:quantRobots.journey.steps.1.detail.rows"
                          }
                        ],
                        "source": "messages:quantRobots.journey.steps.1.detail"
                      }
                    ],
                    "source": "messages:quantRobots.journey.steps.1.detail"
                  }
                ]
              },
              {
                "id": "2",
                "source": "messages:quantRobots.journey.steps.2",
                "title": "Code",
                "meta": [
                  "MQL5"
                ],
                "text": [
                  "The robot is written in MQL5. Inputs come with names that make sense to you."
                ],
                "blocks": [
                  {
                    "type": "demo",
                    "representative": true,
                    "caption": "Representative",
                    "blocks": [
                      {
                        "type": "group",
                        "key": "detail",
                        "title": "What this step produces",
                        "blocks": [
                          {
                            "type": "definitions",
                            "items": [
                              {
                                "label": "file",
                                "value": "ClientTrendPullback.mq5",
                                "source": "messages:quantRobots.journey.steps.2.detail.file"
                              }
                            ],
                            "source": "messages:quantRobots.journey.steps.2.detail.file"
                          },
                          {
                            "type": "cards",
                            "items": [
                              {
                                "id": "0",
                                "source": "messages:quantRobots.journey.steps.2.detail.rows.0",
                                "eyebrow": "Compile",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "0 errors, 0 warnings",
                                    "source": "messages:quantRobots.journey.steps.2.detail.rows.0.v"
                                  }
                                ]
                              },
                              {
                                "id": "1",
                                "source": "messages:quantRobots.journey.steps.2.detail.rows.1",
                                "eyebrow": "Inputs",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "InpRiskPercent · InpEmaPeriod · InpStopBufferPips",
                                    "source": "messages:quantRobots.journey.steps.2.detail.rows.1.v"
                                  }
                                ]
                              },
                              {
                                "id": "2",
                                "source": "messages:quantRobots.journey.steps.2.detail.rows.2",
                                "eyebrow": "Modules",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "RiskSizing.mqh · NewsWindow.mqh",
                                    "source": "messages:quantRobots.journey.steps.2.detail.rows.2.v"
                                  }
                                ]
                              },
                              {
                                "id": "3",
                                "source": "messages:quantRobots.journey.steps.2.detail.rows.3",
                                "eyebrow": "Traceability",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Every spec clause links to its place in the code",
                                    "source": "messages:quantRobots.journey.steps.2.detail.rows.3.v"
                                  }
                                ]
                              }
                            ],
                            "source": "messages:quantRobots.journey.steps.2.detail.rows"
                          }
                        ],
                        "source": "messages:quantRobots.journey.steps.2.detail"
                      }
                    ],
                    "source": "messages:quantRobots.journey.steps.2.detail"
                  }
                ]
              },
              {
                "id": "3",
                "source": "messages:quantRobots.journey.steps.3",
                "title": "Behavior test",
                "meta": [
                  "TEST"
                ],
                "text": [
                  "In the Strategy Tester, we verify trade by trade that the robot follows your rules exactly."
                ],
                "blocks": [
                  {
                    "type": "demo",
                    "representative": true,
                    "caption": "Representative",
                    "blocks": [
                      {
                        "type": "group",
                        "key": "detail",
                        "title": "What this step produces",
                        "blocks": [
                          {
                            "type": "definitions",
                            "items": [
                              {
                                "label": "file",
                                "value": "Strategy Tester · EURUSD,H1",
                                "source": "messages:quantRobots.journey.steps.3.detail.file"
                              }
                            ],
                            "source": "messages:quantRobots.journey.steps.3.detail.file"
                          },
                          {
                            "type": "cards",
                            "items": [
                              {
                                "id": "0",
                                "source": "messages:quantRobots.journey.steps.3.detail.rows.0",
                                "eyebrow": "§1 Entry",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Entry condition verified on every trade",
                                    "source": "messages:quantRobots.journey.steps.3.detail.rows.0.v"
                                  }
                                ]
                              },
                              {
                                "id": "1",
                                "source": "messages:quantRobots.journey.steps.3.detail.rows.1",
                                "eyebrow": "§2 Stop",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Stop placed at the rule's level on every trade",
                                    "source": "messages:quantRobots.journey.steps.3.detail.rows.1.v"
                                  }
                                ]
                              },
                              {
                                "id": "2",
                                "source": "messages:quantRobots.journey.steps.3.detail.rows.2",
                                "eyebrow": "§3 Manage",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Break-even and trailing steps follow the rule",
                                    "source": "messages:quantRobots.journey.steps.3.detail.rows.2.v"
                                  }
                                ]
                              },
                              {
                                "id": "3",
                                "source": "messages:quantRobots.journey.steps.3.detail.rows.3",
                                "eyebrow": "§4 News",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "No new trades opened inside the news window",
                                    "source": "messages:quantRobots.journey.steps.3.detail.rows.3.v"
                                  }
                                ]
                              }
                            ],
                            "source": "messages:quantRobots.journey.steps.3.detail.rows"
                          }
                        ],
                        "source": "messages:quantRobots.journey.steps.3.detail"
                      }
                    ],
                    "source": "messages:quantRobots.journey.steps.3.detail"
                  }
                ]
              },
              {
                "id": "4",
                "source": "messages:quantRobots.journey.steps.4",
                "title": "Delivery and setup",
                "meta": [
                  "DELIVERY"
                ],
                "text": [
                  "We deliver the compiled, licensed .ex5 file with setup notes. The scope of post-delivery fixes is set in the contract; source code comes under a separate agreement."
                ],
                "blocks": [
                  {
                    "type": "demo",
                    "representative": true,
                    "caption": "Representative",
                    "blocks": [
                      {
                        "type": "group",
                        "key": "detail",
                        "title": "What this step produces",
                        "blocks": [
                          {
                            "type": "definitions",
                            "items": [
                              {
                                "label": "file",
                                "value": "Delivery package",
                                "source": "messages:quantRobots.journey.steps.4.detail.file"
                              }
                            ],
                            "source": "messages:quantRobots.journey.steps.4.detail.file"
                          },
                          {
                            "type": "cards",
                            "items": [
                              {
                                "id": "0",
                                "source": "messages:quantRobots.journey.steps.4.detail.rows.0",
                                "eyebrow": "ClientTrendPullback.ex5",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Compiled, licensed robot",
                                    "source": "messages:quantRobots.journey.steps.4.detail.rows.0.v"
                                  }
                                ]
                              },
                              {
                                "id": "1",
                                "source": "messages:quantRobots.journey.steps.4.detail.rows.1",
                                "eyebrow": "Setup notes",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "What each input does and how to install",
                                    "source": "messages:quantRobots.journey.steps.4.detail.rows.1.v"
                                  }
                                ]
                              },
                              {
                                "id": "2",
                                "source": "messages:quantRobots.journey.steps.4.detail.rows.2",
                                "eyebrow": "Test report",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Rule checks from the Strategy Tester",
                                    "source": "messages:quantRobots.journey.steps.4.detail.rows.2.v"
                                  }
                                ]
                              },
                              {
                                "id": "3",
                                "source": "messages:quantRobots.journey.steps.4.detail.rows.3",
                                "eyebrow": "Fix support",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Scope agreed in the contract",
                                    "source": "messages:quantRobots.journey.steps.4.detail.rows.3.v"
                                  }
                                ]
                              },
                              {
                                "id": "4",
                                "source": "messages:quantRobots.journey.steps.4.detail.rows.4",
                                "eyebrow": "ClientTrendPullback.mq5",
                                "fields": [
                                  {
                                    "label": "v",
                                    "value": "Source code, under a separate agreement",
                                    "source": "messages:quantRobots.journey.steps.4.detail.rows.4.v"
                                  }
                                ]
                              }
                            ],
                            "source": "messages:quantRobots.journey.steps.4.detail.rows"
                          }
                        ],
                        "source": "messages:quantRobots.journey.steps.4.detail"
                      }
                    ],
                    "source": "messages:quantRobots.journey.steps.4.detail"
                  }
                ]
              }
            ],
            "source": "messages:quantRobots.journey.steps"
          },
          {
            "type": "paragraph",
            "text": "The next step starts once you sign off.",
            "source": "messages:quantRobots.journey.approval"
          },
          {
            "type": "labels",
            "items": [
              {
                "label": "prev",
                "value": "Previous step",
                "source": "messages:quantRobots.journey.prev"
              },
              {
                "label": "next",
                "value": "Next step",
                "source": "messages:quantRobots.journey.next"
              }
            ],
            "source": "messages:quantRobots.journey"
          }
        ]
      },
      {
        "id": "catalog",
        "anchor": "catalog-heading",
        "url": "https://oxarus.com/en/quant/robots#catalog-heading",
        "kind": "features",
        "component": "FileCatalog",
        "sources": [
          "messages:quantRobots.catalog"
        ],
        "eyebrow": "WHAT WE BUILD",
        "title": "beyond the robot.",
        "lead": "Besides robots, we write indicators, scripts, panels and alert services, and port older robots to MT5. Pick a file.",
        "demo": false,
        "placeholder": false,
        "blocks": [
          {
            "type": "cards",
            "items": [
              {
                "id": "0",
                "source": "messages:quantRobots.catalog.items.0",
                "title": "Trading robot",
                "text": [
                  "A robot that opens, manages and closes trades according to your rules."
                ],
                "fields": [
                  {
                    "label": "folder",
                    "value": "Experts",
                    "source": "messages:quantRobots.catalog.items.0.folder"
                  },
                  {
                    "label": "file",
                    "value": "Robot.ex5",
                    "source": "messages:quantRobots.catalog.items.0.file"
                  },
                  {
                    "label": "Example",
                    "value": "A robot that scales in on trend reversals",
                    "source": "messages:quantRobots.catalog.items.0.example"
                  },
                  {
                    "label": "Inputs",
                    "value": "14",
                    "source": "messages:quantRobots.catalog.items.0.spec.inputs"
                  },
                  {
                    "label": "Platform",
                    "value": "MT5",
                    "source": "messages:quantRobots.catalog.items.0.spec.platforms"
                  },
                  {
                    "label": "Delivery",
                    "value": ".ex5",
                    "source": "messages:quantRobots.catalog.items.0.spec.delivery"
                  },
                  {
                    "label": "kind",
                    "value": "Expert Advisor",
                    "source": "messages:quantRobots.catalog.items.0.spec.kind"
                  }
                ]
              },
              {
                "id": "1",
                "source": "messages:quantRobots.catalog.items.1",
                "title": "Custom indicator",
                "text": [
                  "An indicator that draws your own levels, zones or calculations on the chart."
                ],
                "fields": [
                  {
                    "label": "folder",
                    "value": "Indicators",
                    "source": "messages:quantRobots.catalog.items.1.folder"
                  },
                  {
                    "label": "file",
                    "value": "Indicator.ex5",
                    "source": "messages:quantRobots.catalog.items.1.file"
                  },
                  {
                    "label": "Example",
                    "value": "An indicator that plots the previous day's levels automatically",
                    "source": "messages:quantRobots.catalog.items.1.example"
                  },
                  {
                    "label": "Inputs",
                    "value": "8",
                    "source": "messages:quantRobots.catalog.items.1.spec.inputs"
                  },
                  {
                    "label": "Platform",
                    "value": "MT5",
                    "source": "messages:quantRobots.catalog.items.1.spec.platforms"
                  },
                  {
                    "label": "Delivery",
                    "value": ".ex5",
                    "source": "messages:quantRobots.catalog.items.1.spec.delivery"
                  },
                  {
                    "label": "kind",
                    "value": "Custom Indicator",
                    "source": "messages:quantRobots.catalog.items.1.spec.kind"
                  }
                ]
              },
              {
                "id": "2",
                "source": "messages:quantRobots.catalog.items.2",
                "title": "One-off script",
                "text": [
                  "Short tools you run once to get a specific job done."
                ],
                "fields": [
                  {
                    "label": "folder",
                    "value": "Scripts",
                    "source": "messages:quantRobots.catalog.items.2.folder"
                  },
                  {
                    "label": "file",
                    "value": "Script.ex5",
                    "source": "messages:quantRobots.catalog.items.2.file"
                  },
                  {
                    "label": "Example",
                    "value": "A script that closes every open trade in one click",
                    "source": "messages:quantRobots.catalog.items.2.example"
                  },
                  {
                    "label": "Inputs",
                    "value": "3",
                    "source": "messages:quantRobots.catalog.items.2.spec.inputs"
                  },
                  {
                    "label": "Platform",
                    "value": "MT5",
                    "source": "messages:quantRobots.catalog.items.2.spec.platforms"
                  },
                  {
                    "label": "Delivery",
                    "value": ".ex5",
                    "source": "messages:quantRobots.catalog.items.2.spec.delivery"
                  },
                  {
                    "label": "kind",
                    "value": "Script",
                    "source": "messages:quantRobots.catalog.items.2.spec.kind"
                  }
                ]
              },
              {
                "id": "3",
                "source": "messages:quantRobots.catalog.items.3",
                "title": "Trading panel",
                "text": [
                  "A panel that calculates lot size and sets stop and target by dragging them on the chart."
                ],
                "fields": [
                  {
                    "label": "folder",
                    "value": "Experts",
                    "source": "messages:quantRobots.catalog.items.3.folder"
                  },
                  {
                    "label": "file",
                    "value": "Panel.ex5",
                    "source": "messages:quantRobots.catalog.items.3.file"
                  },
                  {
                    "label": "Example",
                    "value": "A panel that sizes lots from a risk percentage",
                    "source": "messages:quantRobots.catalog.items.3.example"
                  },
                  {
                    "label": "Inputs",
                    "value": "11",
                    "source": "messages:quantRobots.catalog.items.3.spec.inputs"
                  },
                  {
                    "label": "Platform",
                    "value": "MT5",
                    "source": "messages:quantRobots.catalog.items.3.spec.platforms"
                  },
                  {
                    "label": "Delivery",
                    "value": ".ex5",
                    "source": "messages:quantRobots.catalog.items.3.spec.delivery"
                  },
                  {
                    "label": "kind",
                    "value": "Expert · Panel",
                    "source": "messages:quantRobots.catalog.items.3.spec.kind"
                  }
                ]
              },
              {
                "id": "4",
                "source": "messages:quantRobots.catalog.items.4",
                "title": "Alerts and notifications",
                "text": [
                  "Notifies you by phone, email or Telegram when a condition is met."
                ],
                "fields": [
                  {
                    "label": "folder",
                    "value": "Services",
                    "source": "messages:quantRobots.catalog.items.4.folder"
                  },
                  {
                    "label": "file",
                    "value": "Alert.ex5",
                    "source": "messages:quantRobots.catalog.items.4.file"
                  },
                  {
                    "label": "Example",
                    "value": "A service that messages Telegram when a level breaks",
                    "source": "messages:quantRobots.catalog.items.4.example"
                  },
                  {
                    "label": "Inputs",
                    "value": "6",
                    "source": "messages:quantRobots.catalog.items.4.spec.inputs"
                  },
                  {
                    "label": "Platform",
                    "value": "MT5",
                    "source": "messages:quantRobots.catalog.items.4.spec.platforms"
                  },
                  {
                    "label": "Delivery",
                    "value": ".ex5",
                    "source": "messages:quantRobots.catalog.items.4.spec.delivery"
                  },
                  {
                    "label": "kind",
                    "value": "Service",
                    "source": "messages:quantRobots.catalog.items.4.spec.kind"
                  }
                ]
              },
              {
                "id": "5",
                "source": "messages:quantRobots.catalog.items.5",
                "title": "Migration and fixes",
                "text": [
                  "We port your MetaTrader 4 robot to MT5, and fix robots that don't work."
                ],
                "fields": [
                  {
                    "label": "folder",
                    "value": "Experts",
                    "source": "messages:quantRobots.catalog.items.5.folder"
                  },
                  {
                    "label": "file",
                    "value": "MT4_to_MT5",
                    "source": "messages:quantRobots.catalog.items.5.file"
                  },
                  {
                    "label": "Example",
                    "value": "An MT5 version of a legacy MT4 robot",
                    "source": "messages:quantRobots.catalog.items.5.example"
                  },
                  {
                    "label": "Inputs",
                    "value": "—",
                    "source": "messages:quantRobots.catalog.items.5.spec.inputs"
                  },
                  {
                    "label": "Platform",
                    "value": "MT4 → MT5",
                    "source": "messages:quantRobots.catalog.items.5.spec.platforms"
                  },
                  {
                    "label": "Delivery",
                    "value": ".ex5 + report",
                    "source": "messages:quantRobots.catalog.items.5.spec.delivery"
                  },
                  {
                    "label": "kind",
                    "value": "Port & fix",
                    "source": "messages:quantRobots.catalog.items.5.spec.kind"
                  }
                ]
              }
            ],
            "source": "messages:quantRobots.catalog.items"
          },
          {
            "type": "cards",
            "items": [
              {
                "id": "delivery",
                "source": "messages:quantRobots.catalog.delivery",
                "title": "Delivery",
                "fields": [
                  {
                    "label": "ex5",
                    "value": "Compiled, licensed .ex5",
                    "source": "messages:quantRobots.catalog.delivery.ex5"
                  },
                  {
                    "label": "ex5 tag",
                    "value": "Default",
                    "source": "messages:quantRobots.catalog.delivery.ex5Tag"
                  },
                  {
                    "label": "mq5",
                    "value": "Source code (.mq5)",
                    "source": "messages:quantRobots.catalog.delivery.mq5"
                  },
                  {
                    "label": "mq5 tag",
                    "value": "Separate agreement",
                    "source": "messages:quantRobots.catalog.delivery.mq5Tag"
                  }
                ]
              }
            ],
            "source": "messages:quantRobots.catalog.delivery"
          }
        ]
      },
      {
        "id": "honest",
        "anchor": "honest-heading",
        "url": "https://oxarus.com/en/quant/robots#honest-heading",
        "kind": "content",
        "component": "HonestTerms",
        "sources": [
          "messages:quantRobots.honest"
        ],
        "eyebrow": "STRAIGHT TALK",
        "title": "what we do and don't.",
        "demo": false,
        "placeholder": false,
        "blocks": [
          {
            "type": "list",
            "title": "We do",
            "style": "bullet",
            "items": [
              "Turn the strategy you describe into code, exactly",
              "Test that the robot follows the rules",
              "Keep your code and strategy confidential",
              "Provide fix support after delivery"
            ],
            "source": "messages:quantRobots.honest.do"
          },
          {
            "type": "list",
            "title": "We don't",
            "style": "bullet",
            "items": [
              "Suggest strategies or call market direction",
              "Promise profits",
              "Manage your account or touch your trades",
              "Sell the same robot to anyone else"
            ],
            "source": "messages:quantRobots.honest.dont"
          },
          {
            "type": "group",
            "key": "seller",
            "title": "MQL5 seller profile",
            "blocks": [
              {
                "type": "paragraph",
                "text": "We hold a verified seller account in the MQL5 community. A robot written for you is never listed on the Market; it is delivered to you alone.",
                "source": "messages:quantRobots.honest.sellerBody"
              },
              {
                "type": "definitions",
                "items": [
                  {
                    "label": "Account",
                    "value": "Verified seller",
                    "source": "messages:quantRobots.honest.sellerFacts.0"
                  },
                  {
                    "label": "Platform",
                    "value": "MetaTrader 5",
                    "source": "messages:quantRobots.honest.sellerFacts.1"
                  },
                  {
                    "label": "Delivery",
                    "value": "Licensed .ex5",
                    "source": "messages:quantRobots.honest.sellerFacts.2"
                  },
                  {
                    "label": "Source code",
                    "value": "By separate agreement",
                    "source": "messages:quantRobots.honest.sellerFacts.3"
                  }
                ],
                "source": "messages:quantRobots.honest.sellerFacts"
              },
              {
                "type": "group",
                "key": "sellerProfile",
                "title": "Market · Seller profile",
                "blocks": [
                  {
                    "type": "definitions",
                    "items": [
                      {
                        "label": "handle",
                        "value": "MQL5 Market · Seller · Oxarus",
                        "source": "messages:quantRobots.honest.sellerProfile.handle"
                      }
                    ],
                    "source": "messages:quantRobots.honest.sellerProfile.handle"
                  },
                  {
                    "type": "heading",
                    "text": "Oxarus",
                    "level": 5,
                    "source": "messages:quantRobots.honest.sellerProfile.name"
                  },
                  {
                    "type": "definitions",
                    "items": [
                      {
                        "label": "monogram",
                        "value": "OX",
                        "source": "messages:quantRobots.honest.sellerProfile.monogram"
                      }
                    ],
                    "source": "messages:quantRobots.honest.sellerProfile.monogram"
                  },
                  {
                    "type": "paragraph",
                    "text": "Verified seller",
                    "role": "detail",
                    "source": "messages:quantRobots.honest.sellerProfile.badge"
                  },
                  {
                    "type": "definitions",
                    "items": [
                      {
                        "label": "platform",
                        "value": "MetaTrader 5",
                        "source": "messages:quantRobots.honest.sellerProfile.platform"
                      }
                    ],
                    "source": "messages:quantRobots.honest.sellerProfile.platform"
                  },
                  {
                    "type": "cards",
                    "items": [
                      {
                        "id": "0",
                        "source": "messages:quantRobots.honest.sellerProfile.categories.0",
                        "title": "Experts",
                        "fields": [
                          {
                            "label": "code",
                            "value": "EA",
                            "source": "messages:quantRobots.honest.sellerProfile.categories.0.code"
                          }
                        ]
                      },
                      {
                        "id": "1",
                        "source": "messages:quantRobots.honest.sellerProfile.categories.1",
                        "title": "Indicators",
                        "fields": [
                          {
                            "label": "code",
                            "value": "IND",
                            "source": "messages:quantRobots.honest.sellerProfile.categories.1.code"
                          }
                        ]
                      },
                      {
                        "id": "2",
                        "source": "messages:quantRobots.honest.sellerProfile.categories.2",
                        "title": "Utilities",
                        "fields": [
                          {
                            "label": "code",
                            "value": "UTIL",
                            "source": "messages:quantRobots.honest.sellerProfile.categories.2.code"
                          }
                        ]
                      }
                    ],
                    "source": "messages:quantRobots.honest.sellerProfile.categories"
                  },
                  {
                    "type": "definitions",
                    "items": [
                      {
                        "label": "file meta",
                        "value": "MT5 · .ex5",
                        "source": "messages:quantRobots.honest.sellerProfile.fileMeta"
                      }
                    ],
                    "source": "messages:quantRobots.honest.sellerProfile.fileMeta"
                  },
                  {
                    "type": "list",
                    "style": "tags",
                    "items": [
                      "Licensed .ex5",
                      "Source code by agreement",
                      "Custom work stays private"
                    ],
                    "source": "messages:quantRobots.honest.sellerProfile.chips"
                  }
                ],
                "source": "messages:quantRobots.honest.sellerProfile"
              }
            ],
            "source": "messages:quantRobots.honest.seller"
          },
          {
            "type": "callout",
            "tone": "note",
            "text": [
              "Not investment advice. Trading in financial markets carries a risk of losing capital."
            ],
            "source": "messages:quantRobots.honest.note"
          },
          {
            "type": "list",
            "title": "We do",
            "style": "bullet",
            "items": [
              "Each rule maps to code, point by point. Delivery is a compiled, licensed .ex5 file; source code comes under a separate agreement.",
              "A Strategy Tester report shows that every rule triggers correctly.",
              "An NDA is signed before any work begins.",
              "Bugs found after delivery are logged and fixed; the scope of that support is set in the contract."
            ],
            "source": "messages:quantRobots.honest.doProofs"
          },
          {
            "type": "list",
            "title": "We don't",
            "style": "bullet",
            "items": [
              "The strategy is yours; we only code the rules you define.",
              "No robot can know future outcomes, and we won't write anything that claims to.",
              "We never ask for your account details; you run the robot in your own terminal.",
              "A robot written for you is never sold to another client."
            ],
            "source": "messages:quantRobots.honest.dontReasons"
          }
        ]
      },
      {
        "id": "cta",
        "anchor": "cta",
        "url": "https://oxarus.com/en/quant/robots#cta",
        "kind": "cta",
        "component": "StudioCta",
        "sources": [
          "messages:quantRobots.cta"
        ],
        "eyebrow": "ROBOT",
        "title": "tell us about your method.",
        "lead": "Write out your rules in a few sentences and, if you can, attach screenshots of example trades. We'll pin down scope and timeline, then get back to you.",
        "demo": false,
        "placeholder": false,
        "blocks": [
          {
            "type": "actions",
            "items": [
              {
                "label": "Describe your strategy",
                "action": "start_project_brief",
                "args": {
                  "topic": "quant"
                },
                "href": "/en/contact?start=quant",
                "source": "messages:quantRobots.cta.button"
              },
              {
                "label": "info@oxarus.com",
                "action": "contact",
                "args": {
                  "subject": "Custom robot"
                },
                "href": "mailto:info@oxarus.com?subject=Custom%20robot",
                "source": "messages:quantRobots.cta.subject"
              }
            ],
            "source": "messages:quantRobots.cta.button"
          }
        ]
      }
    ],
    "entities": [
      "org",
      "unit:quant",
      "service:quant-robots"
    ],
    "actions": [
      {
        "label": "Describe your strategy",
        "action": "open_page",
        "args": {
          "path": "/quant/robots",
          "anchor": "cta-heading"
        },
        "href": "/en/quant/robots#cta-heading",
        "source": "messages:quantRobots.hero.primary"
      },
      {
        "label": "How to describe it",
        "action": "open_page",
        "args": {
          "path": "/quant/robots",
          "anchor": "brief"
        },
        "href": "/en/quant/robots#brief",
        "source": "messages:quantRobots.hero.secondary"
      },
      {
        "label": "Describe your strategy",
        "action": "start_project_brief",
        "args": {
          "topic": "quant"
        },
        "href": "/en/contact?start=quant",
        "source": "messages:quantRobots.cta.button"
      },
      {
        "label": "info@oxarus.com",
        "action": "contact",
        "args": {
          "subject": "Custom robot"
        },
        "href": "mailto:info@oxarus.com?subject=Custom%20robot",
        "source": "messages:quantRobots.cta.subject"
      },
      {
        "label": "Türkçe",
        "action": "switch_locale",
        "args": {
          "locale": "tr",
          "path": "/quant/robots"
        },
        "href": "/tr/quant/robots"
      }
    ],
    "related": [
      {
        "label": "Oxarus Quant",
        "href": "/quant"
      }
    ],
    "notices": [
      {
        "kind": "representative",
        "text": "Interface data marked as representative is illustrative; it is not a real client, result or measurement."
      },
      {
        "kind": "not-advice",
        "text": "Not investment advice. Trading in financial markets carries a risk of losing capital.",
        "source": "messages:quantRobots.honest.note"
      }
    ],
    "translation": {
      "locale": "en",
      "identicalToSource": 0.133,
      "pending": false
    },
    "stats": {
      "sections": 6,
      "blocks": 75,
      "strings": 420
    }
  },
  "tokens": {
    "markdown": 3649,
    "text": 3077,
    "json": 8314,
    "jsonLd": 1532
  },
  "endpoints": [
    {
      "id": "page-md",
      "path": "/machine/en/quant/robots.md",
      "format": "markdown",
      "scope": "page",
      "locale": "en"
    },
    {
      "id": "page-json",
      "path": "/machine/en/quant/robots.json",
      "format": "json",
      "scope": "page",
      "locale": "en"
    },
    {
      "id": "page-jsonld",
      "path": "/machine/en/quant/robots.jsonld",
      "format": "jsonld",
      "scope": "page",
      "locale": "en"
    },
    {
      "id": "page-txt",
      "path": "/machine/en/quant/robots.txt",
      "format": "text",
      "scope": "page",
      "locale": "en"
    },
    {
      "id": "llms",
      "path": "/llms.txt",
      "format": "text",
      "scope": "site"
    },
    {
      "id": "llms-full",
      "path": "/llms-full.txt?locale=en",
      "format": "text",
      "scope": "site",
      "locale": "en"
    },
    {
      "id": "index",
      "path": "/index.md?locale=en",
      "format": "markdown",
      "scope": "site",
      "locale": "en"
    },
    {
      "id": "services",
      "path": "/services.md?locale=en",
      "format": "markdown",
      "scope": "site",
      "locale": "en"
    },
    {
      "id": "agents",
      "path": "/agents.md?locale=en",
      "format": "markdown",
      "scope": "site",
      "locale": "en"
    },
    {
      "id": "sitemap",
      "path": "/sitemap.md",
      "format": "markdown",
      "scope": "site"
    },
    {
      "id": "manifest-tr",
      "path": "/machine/tr/index.json",
      "format": "json",
      "scope": "site",
      "locale": "tr"
    },
    {
      "id": "manifest-en",
      "path": "/machine/en/index.json",
      "format": "json",
      "scope": "site",
      "locale": "en"
    },
    {
      "id": "search",
      "path": "/machine/search.json?q={query}&locale={locale}&unit={unit}",
      "format": "json",
      "scope": "site"
    },
    {
      "id": "agent-api",
      "path": "/api/agent/v1",
      "format": "json",
      "scope": "site"
    },
    {
      "id": "openapi",
      "path": "/openapi.json",
      "format": "json",
      "scope": "site"
    },
    {
      "id": "mcp",
      "path": "/api/mcp",
      "format": "json",
      "scope": "site"
    },
    {
      "id": "mcp-server-card",
      "path": "/.well-known/mcp.json",
      "format": "json",
      "scope": "site"
    },
    {
      "id": "api-catalog",
      "path": "/.well-known/api-catalog",
      "format": "json",
      "scope": "site"
    }
  ]
}