Science tracks
One engine accepts TrackConfig; no food, water, or third-track pipeline is copied.
The default food and water configurations request the same synthetic canopy-height
and NIR-reflectance observations. Food uses a scalar encoder; water uses scalar
and square. This demonstrates configuration and output independence, not a
scientific food- or water-security indicator.
Each track declares question, variable requirements, modalities, spatial/temporal requirements, encoder, and scientific assumption. A track recipe references its core recipe; track observations retain parent canonical identifiers and parent provenance. Track-specific artifacts carry track identity and never overwrite core observations or another track's outputs.
Source records and shared canonical cache entries are immutable and shareable. A shared source does not imply shared interpretation. Future food rules might involve traits/productivity, and water rules might involve fluxes/soil/environment; no such scientific model is encoded until supplied and reviewed.
Add a track
- Copy
tracks/third_track/config.jsonto a new track folder or another JSON path. - Supply a scientific question, required variables/modalities, support, and explicit assumptions.
- Define and review any nonconservative recipes and domain validation.
- Enable the track and run
prototype run --config path/to/config.json --output run/new. - Add configuration, scientific validation, provenance, and independence tests.
The third-track template is disabled because its scientific scope is undecided. An integration test enables a synthetic copy to demonstrate configuration-only extensibility without inventing a third scientific application. Custom domain recipes can use the independent harmonization API; the default orchestrator currently constructs only curated identity/selection recipes from declared metadata.