diff --git a/src/specificClass.js b/src/specificClass.js index c2b5768..7852022 100644 --- a/src/specificClass.js +++ b/src/specificClass.js @@ -18,13 +18,19 @@ class PumpingStation extends BaseDomain { static name = 'pumpingStation'; // Internal math runs in m3/s for flow and m for level so the volume - // integrator (flow × dt) is unit-consistent. Strict canonicals make - // unit drift in child-fed measurements an explicit error. + // integrator (flow × dt) is unit-consistent — canonical stays m3/s, the + // platform-wide convention every cross-node consumer (MGC demand math, + // physics-sanity) assumes. Strict canonicals make unit drift in child-fed + // measurements an explicit error. + // Output flow / netFlowRate are emitted in m3/h so telemetry/dashboard + // series land on the same axis as the rest of the pump group (verified + // slice #47); the m3/s→m3/h presentation conversion happens at the output + // boundary only — it never touches the canonical integrator basis. // overflowVolume / underflowVolume are listed in output so the // MeasurementContainer keeps the integrator's m³ unit on those streams // (FlowAggregator writes spill / underflow per tick). static unitPolicy = UnitPolicy.declare({ - canonical: { flow: 'm3/h', pressure: 'Pa', power: 'W', temperature: 'K' }, + canonical: { flow: 'm3/s', pressure: 'Pa', power: 'W', temperature: 'K' }, output: { flow: 'm3/h', netFlowRate: 'm3/h', level: 'm', volume: 'm3', overflowVolume: 'm3', underflowVolume: 'm3',