Skip to content

Measurement And Engine Contracts

bijux-gnss-core owns the record meanings that must survive handoff between signal, receiver, navigation, infrastructure, and command crates. These records are not stage implementations; they are the shared language used by stage implementations.

Shared Measurement Flow

flowchart LR
    samples["SamplesFrame"]
    acquisition["AcqRequest and AcqResult"]
    tracking["tracking epochs and transitions"]
    observations["ObsEpoch and metadata"]
    navigation["NavSolutionEpoch and residuals"]
    artifacts["ArtifactV1 envelopes"]

    samples --> acquisition --> tracking --> observations --> navigation --> artifacts
    observations --> artifacts

Contract Families

family owns first proof
sample bridge sample-frame records that cross source, signal, and receiver boundaries observation source and core contract guide
acquisition records request/result records and explainability payload meaning observation source
tracking records tracking epochs, transitions, uncertainty, and channel-state language observation source
observation records ObsEpoch, metadata, receiver roles, timing, rejection, and uncertainty classes observation source
navigation-solution records solution epochs, residuals, validity, lifecycle, and refusal classes navigation-solution source
artifact envelopes versioned cross-crate artifact headers, payload kinds, and validation traits artifact source

Boundary Rules

  • Core owns what exchanged records mean.
  • Signal owns reusable signal computation before receiver stage execution.
  • Receiver owns stage ordering and runtime artifacts that use these records.
  • Navigation owns solver behavior that consumes and emits these records.
  • Infra owns repository persistence around these records.
  • Command owns operator routes and reports over these records.

Reader Checks

  • Is the record shared by more than one crate?
  • Would changing it alter persisted artifact interpretation or downstream solver assumptions?
  • Can higher crates use the record without importing runtime, filesystem, or command policy?
  • Does the proof live in core tests or in the crate that implements behavior over the record?

First Proof Check

Inspect the core contract guide, contract map, and serialization guide. Then inspect artifact, observation, and navigation-solution source for the record family that moved.