Model manifest
Each published model directory contains manifest.json. It is the small
discovery document paired with the larger site profiles.
Stable fields
Section titled “Stable fields”| Field | Meaning |
|---|---|
schemaVersion |
Manifest contract version |
model |
Catalogue slug and directory identity |
referenceTime |
Provider model initialization time |
generatedAt |
Time this publication was generated |
firstForecastHour, lastForecastHour, forecastHours |
Published step extent and count |
memberCount |
Ensemble membership; absent on deterministic manifests |
sites |
Published site name/slug pairs for this model run |
stats |
Stable accounting core plus optional transport-specific numbers |
The stable stats core is downloads, downloadBytes, retries, and
durationMs. Other numeric keys can change; use them for
diagnostics, not application logic.
Publication identity
Section titled “Publication identity”Treat (referenceTime, generatedAt) as the publication identity. A new
generatedAt with the same referenceTime is a corrected republication and
should be re-ingested. It is not a schema release.
The manifest and a selected profile must describe the same model and
referenceTime. Independently cached static files can briefly disagree during
deployment, so TypeScript consumers use
loadProfile() from windgram/transport
rather than composing two unguarded fetches.
Validate the document
Section titled “Validate the document”Use parseWindgramManifestJson from windgram/contract. A 404 means the model
is not published at that root; an invalid document is also unavailable, not an
invitation for view code to guess missing fields.
runs.json at the data root indexes each current manifest’s publication identity across
models in one document. It does not replace the manifest’s site inventory or
forecast extent.