The bridge matched only the lower-case spellings "hw_shunt" / "model_based",
but Mesh writes usage.energy.provenance with its wire labels
(mesh_schema::Provenance::jcr1_label: "HwShunt", "ModelBased", "Estimator"),
so every Mesh HwShunt or ModelBased figure fell through to the estimator
floor and was sealed into efficiency/1 under-graded.
Both spellings are now read as the same grade (the lower-case one is
JouleClaw's energy-crate display form); any other label still falls to
Estimator. The new tests feed the bridge real Mesh output
(mesh_openai::chat_completion_response with mesh_schema's jcr1_label, as
dev-dependencies) and check each grade reaches the verified receipt
unchanged. Mesh's usage.energy carries no coverage label and efficiency/1
has no coverage field, so there is no coverage label to map. The proxy's
mock upstream now writes Mesh's spelling.
Co-Authored-By: Claude Opus 5.5 <[email protected]>