{
  "additionalProperties": false,
  "description": "Band-breakout entry: fires when price crosses out of a Bollinger/Keltner/Donchian band.\n\nCompiles to ``BandEdgeCondition(event=\"cross_out\", edge=...)``. ``cross_out``\nis an edge-based cross \u2014 it fires only on the bar that close transitions\nfrom inside-or-at the band to outside, so a bar that is already outside at\nseries start does not count as a breakout. This matches the documented\n\"tracks the tightest band edge while inside the band, then enters when\nprice breaks out\" intent: prior to the breakout bar, close must have been\ninside (or touching) the band.\n\nVIB-1355: previously compiled via a separate ``TrailingBreakoutCondition``\nthat maintained ``min(BB.upper)`` across all bars (including before any\ninside-band observation) and required a cross over that monotone-decreasing\ntrail. On trending series, close was already above the band at warmup, so\nthe cross never fired (zero signals). The flat ``cross_out`` semantic is\nthe simpler, correct primitive.",
  "properties": {
    "card_type": {
      "const": "trailing_entry",
      "default": "trailing_entry",
      "title": "Card Type",
      "type": "string"
    },
    "edge": {
      "default": "upper",
      "enum": [
        "upper",
        "lower"
      ],
      "title": "Edge",
      "type": "string"
    },
    "indicator_type": {
      "default": "BB",
      "description": "Band indicator type",
      "enum": [
        "BB",
        "KC",
        "DC"
      ],
      "title": "Indicator Type",
      "type": "string"
    },
    "multiplier": {
      "default": 2.0,
      "maximum": 5.0,
      "minimum": 0.5,
      "title": "Multiplier",
      "type": "number"
    },
    "period": {
      "default": 20,
      "maximum": 200,
      "minimum": 5,
      "title": "Period",
      "type": "integer"
    }
  },
  "title": "TrailingEntryCard",
  "type": "object"
}
