{
  "engine_version": "1.0.0",
  "default_mode": "balanced",
  "allowed_modes": [
    "strict",
    "balanced",
    "ucits_default"
  ],
  "classification_values": [
    "complex",
    "non-complex",
    "review"
  ],
  "hard_complex_rules": [
    "leveraged",
    "inverse",
    "structured_payoff",
    "capital_protection",
    "coco_or_at1_exposure",
    "clo_exposure",
    "commodity_futures_roll",
    "contango_backwardation"
  ],
  "swap_rules": {
    "strict": "complex_if_any_swap_or_synthetic_or_material_derivative",
    "balanced": "complex_if_swap_synthetic_or_derivative_is_core_strategy",
    "ucits_default": "complex_if_leveraged_inverse_structured_or_explicit_warning"
  },
  "mode_descriptions": {
    "strict": "Any material derivative, swap, synthetic, complex underlying, structured payoff, roll-cost, leverage, inverse, or PRIIPs warning signal can drive complex classification.",
    "balanced": "UCITS ETFs usually start from a non-complex baseline, but product-level complexity such as synthetic replication, swaps, leverage, inverse exposure, complex debt, commodity roll exposure, or comprehension warnings can override that baseline.",
    "ucits_default": "UCITS ETFs default to non-complex unless leverage, inverse exposure, structured payoff, complex underlyings, or explicit comprehension-warning language is identified."
  }
}