{
  "version": "generic-review-contract-1.0",
  "kind": "review_template_not_executable_api_payload",
  "status": "illustrative_not_a_recommended_strategy",
  "created": "2026-10-04",
  "approval_required": true,
  "example": {
    "instrument": {"venue": "Binance", "product": "spot-price paper reference", "symbol": "BTCUSDT", "direction": "long_only"},
    "data": {"interval": "15m", "signal": "completed_bars_only", "available_at": "must precede decision", "missing_or_late": "block new entry", "maximum_age": "define for the intended workflow, not silently default"},
    "entry": {"indicator": "EMA9 upward crossover EMA21", "order": "next permitted bar open", "signal_expiry": "that next open only"},
    "sizing": {"account_usd": 10000, "max_notional_usd": 500, "leverage": 1, "max_concurrent": 1},
    "exits": {"stop_fraction": 0.02, "target_fraction": 0.04, "opposite_cross": true, "max_hold_hours": 48, "ambiguous_intrabar": "stop-first", "gap": "next available permitted execution; report gap"},
    "costs": {"fee_fraction_per_fill": 0.0005, "adverse_slippage_fraction_per_fill": 0.0002, "funding": "excluded", "borrowing": "excluded"},
    "boundary_tests": ["Above both bars is not a new cross", "Incomplete bar cannot trigger", "Missing data blocks entry", "Same identifier cannot create a second action", "Effective opposite-cross exit appears in both code and contract"],
    "audit": {"freeze": ["code version", "data hash", "approved strategy", "all effective exits", "trial history", "opportunity and fill ledgers"], "revision": "new version; preserve failed outcomes"}
  },
  "api_warning": "This generic document is not accepted directly by the current strategy-test API. Review the supported BTC single-timeframe family schema and unsupported clauses first."
}
