# watch/data/latest.json schema (v1.0)

Overwrite `latest.json` each Monday run (keep dated copies as `YYYY-MM-DD.json` if history is wanted).
The page `/watch/` renders whatever is in `latest.json`. Machine-readable field docs live in its `_schema` block.

Top-level fields: `schema_version`, `status` (`no_runs_yet|ok|partial|failed`), `status_message`, `run_date`, `run_id`, `next_run`, `scope`,
`changes_since_last_run[]`, `rebuildable_spoilers_for_sale[]`, `availability[]`, `unknowns[]`, `competitors[]`.

Rules: no customer data, no VINs, no internal pricing strategy, no secrets. Label figures FACT / ESTIMATE / UNKNOWN. Use `null` for unknown values.
