- config/machineGroup.json: every non-row panel now annotated with meta.emittedFields (mode, scaling, abs/relDistFromPeak, flow.total/group, power.total/group). Per-pump fields (ctrl, state, runtime, pressure, temperature) deliberately absent — those live on rotatingMachine children per #39's no-data-duplication contract. - Timeseries panels gain byRegexp dashed-bounds overrides for .min$/.max$ (same pattern as #38). - test/basic/slice40-mgc-template.basic.test.js: 4 cases — no per-pump fields leak in, every non-row annotated, dashed overrides present on TS, composer dedup applies when a child claims an MGC-level field. Closes #40
dashboardAPI Test Suite Layout
Required EVOLV layout:
- basic/
- integration/
- edge/
- helpers/
Baseline structure tests:
- basic/structure-module-load.basic.test.js
- integration/structure-examples.integration.test.js
- edge/structure-examples-node-type.edge.test.js