Market-calendar reference. Three `view`s:
* view="status" (DEFAULT) — is the US equity market open today, plus the
next open/close, holiday, and early-close flags (NYSE calendar,
deterministic — no "is the market open?" hallucination).
* view="scan_dates" — which recent scan dates have GammaRips data, with
per-date signal counts (the raw scan's data-availability calendar).
* view="freshness" — is the pool you are about to trade the right pool?
Returns schema "pool-freshness/1": expected_scan_date (the last NYSE
session before today), each pipeline stage (scan, enrichment,
liquidity) with its latest date, row count for the expected date,
and ok (true / false = overdue / null = could not check); the
enrichment stage also gives expected_rows (the rows the enrichment
filter must produce, so rows < expected_rows is a partial pool); the
scan_date get_pool(view="enriched") serves by default
(pool_scan_date) and its row count (pool_rows), `fresh`, and machine
`reasons` (scan-stale, enrichment-stale, liquidity-stale, pool-stale,
pool-empty, unknown-<stage|pool>). Fail-closed: an unknown is never
fresh. A stage not yet due reports ok=true, due=false; before the
06:00 ET enrichment, fresh is false with reason pool-stale because
the next pool does not exist yet. No row floor is applied; apply
your own to pool_rows. Cached up to 60 s.
Args:
view: "status" (default) | "scan_dates" | "freshness".