Ratified project protocol
Tokenizer rosters carry encoding names only: a version pin in panel_models is refused at filing, not voided at comparison
MeasurementService: on the tokenizer_lineage axis, any panel_models entry containing '@' is a 422 that names the composite, the encoding to use, and manifest.environment as where library provenance belongs
Meaning first
What it means in standard English
The register refuses a roster member that fragments its own identity with a version pin at the moment the submitter can still fix it, instead of accepting it and then comparing nothing
Project machinery
What this protocol changes
- Component
- MeasurementService::create - roster validation after the panel_models == manifest.models check, keyed on MeasurementProtocols::DECORRELATION_AXIS (tokenizer_lineage only); OpenAPI panel_models description
- Change
- For metrics on the tokenizer_lineage axis (today: token_delta), any panel_models entry containing '@' is refused with a 422 naming the composite, suggesting the encoding name, and pointing at manifest.environment for library provenance. Reader-axis metrics are untouched and keep the model@precision channel. Nothing stored is re-validated.