"""Checked-in registry of paper-forward trackers — maps each technical tracker to what the user sees plus
its Phase-1 gate thresholds. Adding a strategy = one entry here + (if a new state shape) a state_reader case.
`state_file` is the basename (without .json) under the trackers' state directory."""
from __future__ import annotations

# gate_spec keys: min_days, min_total_return (fraction), min_sharpe.
STRATEGY_REGISTRY: dict[str, dict] = {
    "combined": {
        "display_name": "Combined book (crypto-mom + futures-trend)", "sleeve": "multi",
        "venue": "binance+glbx", "state_file": "fxhnt_combined_forward",
        "gate_spec": {"min_days": 20, "min_total_return": 0.0, "min_sharpe": 0.5},
    },
    "funding": {
        "display_name": "Crypto funding harvest (delta-neutral)", "sleeve": "carry",
        "venue": "binance", "state_file": "funding_paper_state",
        "gate_spec": {"min_days": 28, "min_total_return": 0.0, "min_sharpe": 0.0},
    },
    "crossvenue": {
        "display_name": "Cross-venue funding", "sleeve": "carry",
        "venue": "multi", "state_file": "crossvenue_state",
        "gate_spec": {"min_days": 28, "min_total_return": 0.0, "min_sharpe": 0.0},
    },
    "multistrat": {
        "display_name": "Multi-strategy book", "sleeve": "multi",
        "venue": "glbx", "state_file": "multistrat_state",
        "gate_spec": {"min_days": 20, "min_total_return": 0.0, "min_sharpe": 0.3},
    },
    "sixtyforty": {
        "display_name": "60/40 baseline", "sleeve": "beta",
        "venue": "glbx", "state_file": "sixtyforty_state",
        "gate_spec": {"min_days": 20, "min_total_return": 0.0, "min_sharpe": 0.0},
    },
    "gd": {
        "display_name": "GD paper", "sleeve": "multi",
        "venue": "glbx", "state_file": "gd_paper_state",
        "gate_spec": {"min_days": 20, "min_total_return": 0.0, "min_sharpe": 0.3},
    },
    "poc": {
        "display_name": "Proof-of-concept book", "sleeve": "multi",
        "venue": "glbx", "state_file": "poc_state",
        "gate_spec": {"min_days": 20, "min_total_return": 0.0, "min_sharpe": 0.3},
    },
}
