Optional / larger scope (2–4 focused weeks); does not block the MVP.
Move LandWeb_preamble's functions into LandWebUtils and drop its LandR / reproducible usage, so the heavy data-prep stage runs as native targets functions.
Rationale: granular, reliable targets caching instead of wrapping one big simInitAndSpades and extracting its outputs; removing reproducible also shrinks the destructive-options and serialization surface.
This is a deliberate exception to the "keep modules wrapped" rule, and a defensible one: LandWeb_preamble is LandWeb-owned rather than a general PredictiveEcology module, and is pure data prep with no per-timestep dynamics — so little upstream-pull benefit is lost. The general Biomass_* modules stay wrapped.
Cost: real upfront work, and it must preserve scientific behaviour exactly — parity-test against current preamble outputs.
Optional / larger scope (2–4 focused weeks); does not block the MVP.
Move
LandWeb_preamble's functions intoLandWebUtilsand drop itsLandR/reproducibleusage, so the heavy data-prep stage runs as nativetargetsfunctions.Rationale: granular, reliable targets caching instead of wrapping one big
simInitAndSpadesand extracting its outputs; removingreproduciblealso shrinks the destructive-options and serialization surface.This is a deliberate exception to the "keep modules wrapped" rule, and a defensible one:
LandWeb_preambleis LandWeb-owned rather than a general PredictiveEcology module, and is pure data prep with no per-timestep dynamics — so little upstream-pull benefit is lost. The generalBiomass_*modules stay wrapped.Cost: real upfront work, and it must preserve scientific behaviour exactly — parity-test against current preamble outputs.