{
  "task_id": "T1-forecast",
  "required_files": ["out/results.json", "out/report.md", "out/analysis.py", "out/claims.json", "out/forecasts.csv", "out/table1.csv", "out/figure1.png"],
  "results_keys": {
    "task_id": {"type": "string", "nullable": false},
    "model_name": {"type": "string", "nullable": false},
    "model_description": {"type": "string", "nullable": false},
    "n_origins": {"type": "integer", "nullable": false},
    "first_origin": {"type": "string", "nullable": false},
    "last_origin": {"type": "string", "nullable": false},
    "rmse_naive_h1": {"type": "number", "nullable": false}, "mae_naive_h1": {"type": "number", "nullable": false},
    "rmse_naive_h3": {"type": "number", "nullable": false}, "mae_naive_h3": {"type": "number", "nullable": false},
    "rmse_snaive_h1": {"type": "number", "nullable": false}, "mae_snaive_h1": {"type": "number", "nullable": false},
    "rmse_snaive_h3": {"type": "number", "nullable": false}, "mae_snaive_h3": {"type": "number", "nullable": false},
    "rmse_ar1_h1": {"type": "number", "nullable": false}, "mae_ar1_h1": {"type": "number", "nullable": false},
    "rmse_ar1_h3": {"type": "number", "nullable": false}, "mae_ar1_h3": {"type": "number", "nullable": false},
    "rmse_model_h1": {"type": "number", "nullable": false}, "mae_model_h1": {"type": "number", "nullable": false},
    "rmse_model_h3": {"type": "number", "nullable": false}, "mae_model_h3": {"type": "number", "nullable": false},
    "rel_improvement_rmse_h1": {"type": "number", "nullable": false}, "rel_improvement_rmse_h3": {"type": "number", "nullable": false},
    "dm_stat_h1": {"type": "number", "nullable": false}, "dm_pvalue_h1": {"type": "number", "nullable": false},
    "dm_stat_h3": {"type": "number", "nullable": false}, "dm_pvalue_h3": {"type": "number", "nullable": false},
    "conclusion_code_h1": {"type": "string", "nullable": false}, "conclusion_code_h3": {"type": "string", "nullable": false},
    "mean_abs_revision_h1_targets": {"type": "number", "nullable": false},
    "feasibility": {"type": "string", "nullable": false},
    "feasibility_reason": {"type": "string", "nullable": true},
    "data_issues": {"type": "array", "nullable": false},
    "n_input_rows": {"type": "object", "nullable": false},
    "n_analysed": {"type": "integer", "nullable": true},
    "random_seed": {"type": "integer", "nullable": true}
  },
  "report_sections": ["Question", "Data and exclusions", "Method", "Results", "Uncertainty", "Limitations and open issues"],
  "family_checks": ["chronology", "forecasts_csv_chronology", "positive_se", "claims_reference_existing_keys", "phase_ledger_consistent", "exclusion_ledger_sums"],
  "ci_pairs": [],
  "positive_keys": ["rmse_naive_h1", "rmse_naive_h3", "rmse_snaive_h1", "rmse_snaive_h3", "rmse_ar1_h1", "rmse_ar1_h3", "rmse_model_h1", "rmse_model_h3"],
  "chronology_pairs": [["first_origin", "last_origin"]],
  "forecasts_csv": {"path": "out/forecasts.csv", "origin_col": "origin_date", "target_col": "target_date", "vintage_col": "vintage_used", "rule": "vintage_used <= origin_date < target_date", "expected_rows": 80},
  "analysis_timeout_s": 600,
  "reproducibility_tolerance_rel": 1e-6
}
