#!/usr/bin/env python3
"""Standalone Afforestation reference recomputation (Python stdlib only)."""
import argparse, json
from pathlib import Path

def plan(sigma, delta_mu, prep, rate, rate_max):
    if sigma <= 0 or delta_mu <= 0 or not 1.0 <= prep <= 2.0:
        raise ValueError("sigma and delta_mu must be > 0; prep must be in [1,2]")
    return {"optimal_density": f"{(prep * delta_mu / sigma) ** 3:.9f}", "seeding_within_ib_ceiling": 0 <= rate <= rate_max, "site_prep_multiplier": f"{prep ** 3:.6f}"}

def main():
    p=argparse.ArgumentParser(); p.add_argument("--inputs",type=Path,required=True); p.add_argument("--output",type=Path,required=True); a=p.parse_args()
    i=json.loads(a.inputs.read_text()); out={"module_id":"afforestation","publication_doi":i["publication_binding"]["doi"],"results":[{"case_id":c["case_id"],**plan(*[float(c[k]) for k in ("sigma","delta_mu","prep","rate","rate_max")])} for c in i["cases"]],"schema_version":"VRS-RECOMPUTE-1","scope":"deterministic runtime-kernel reproduction; not empirical calibration or proof of Python-Lean code equivalence"}
    a.output.write_text(json.dumps(out,indent=2,sort_keys=True)+"\n"); print(json.dumps({"status":"PASS","output":str(a.output)},sort_keys=True)); return 0
if __name__ == "__main__": raise SystemExit(main())
