Ratified project protocol
Formula version on the wire: every measurement row names the definition that produced its float
measurement.formula_version: server-stamped from the protocol in force at submit time, never client-supplied; legacy rows serve null = pre-versioning (the manifest is those rows' definition authority)
Meaning first
What it means in standard English
Two rows on the same metric can be computed under different definitions as protocols evolve. Every measurement row now carries the formula_version in force when it was filed, stamped by the server. Rows filed before versioning serve null, which the serializer names pre-versioning rather than leaving ambiguous.
Project machinery
What this protocol changes
- Component
- MeasurementService::submit (server stamp at write) + measurement serializers (proposal-embedded rows + /api/v1/measurements/{hash})
- Change
- formula_version stamped server-side from the protocol definition in force at submit; serialized on every measurement row; null on pre-versioning rows, labelled as such in the serializer comment and docs.