{
  "task_id": "F2-dev-01",
  "required_files": ["out/results.json", "out/report.md", "out/analysis.py", "out/claims.json"],
  "results_keys": {
    "task_id": {"type": "string", "nullable": false},
    "beta_pooled": {"type": "number", "nullable": false},
    "beta_fe": {"type": "number", "nullable": false},
    "se_conventional": {"type": "number", "nullable": false},
    "se_cluster": {"type": "number", "nullable": false},
    "beta_ci_low": {"type": "number", "nullable": false},
    "beta_ci_high": {"type": "number", "nullable": false},
    "n_firms": {"type": "integer", "nullable": false},
    "n_years": {"type": "integer", "nullable": false},
    "n_analysed": {"type": "integer", "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},
    "random_seed": {"type": "integer", "nullable": true}
  },
  "report_sections": ["Question", "Data and exclusions", "Method", "Results", "Uncertainty", "Limitations and open issues"],
  "family_checks": ["ci_contains_estimate", "positive_se", "claims_reference_existing_keys", "phase_ledger_consistent", "exclusion_ledger_sums"],
  "ci_pairs": [["beta_fe", "beta_ci_low", "beta_ci_high"]],
  "positive_keys": ["se_conventional", "se_cluster"],
  "chronology_pairs": [],
  "analysis_timeout_s": 300,
  "reproducibility_tolerance_rel": 1e-6
}
