{
  "task_id": "F3-conf-03",
  "required_files": ["out/results.json", "out/report.md", "out/analysis.py", "out/claims.json", "out/forecasts.csv"],
  "results_keys": {
    "task_id": {"type": "string", "nullable": false},
    "n_origins": {"type": "integer", "nullable": false},
    "first_origin": {"type": "string", "nullable": false},
    "last_origin": {"type": "string", "nullable": false},
    "lambda": {"type": "number", "nullable": false},
    "normalisation_window": {"type": "string", "nullable": false},
    "n_features": {"type": "integer", "nullable": false},
    "rmse_naive": {"type": "number", "nullable": false},
    "mae_naive": {"type": "number", "nullable": false},
    "rmse_mean": {"type": "number", "nullable": false},
    "mae_mean": {"type": "number", "nullable": false},
    "rmse_ridge": {"type": "number", "nullable": false},
    "mae_ridge": {"type": "number", "nullable": false},
    "rel_improvement_vs_naive": {"type": "number", "nullable": false},
    "rel_improvement_vs_mean": {"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", "claims_reference_existing_keys", "phase_ledger_consistent", "exclusion_ledger_sums"],
  "ci_pairs": [],
  "positive_keys": ["rmse_naive", "rmse_mean", "rmse_ridge"],
  "chronology_pairs": [["first_origin", "last_origin"]],
  "analysis_timeout_s": 300,
  "reproducibility_tolerance_rel": 1e-6
}
