Observation and Tracking Contracts¶
Observation and tracking records are shared language at the boundary between signal facts, receiver runtime, navigation interpretation, and persisted artifacts. Core owns the record meaning; higher crates own the behavior that creates or consumes those records.
Record Flow¶
flowchart LR
signal["signal facts"]
receiver["receiver stages"]
core["core observation<br/>and tracking records"]
nav["navigation consumers"]
infra["artifact persistence"]
command["operator reports"]
signal --> receiver --> core
core --> nav
core --> infra
core --> command
Record Families¶
| family | record meaning | behavior owner |
|---|---|---|
| acquisition | requests, results, hypotheses, evidence, refinement, uncertainty | receiver acquisition |
| tracking | epochs, transitions, lifecycle state, assumptions, uncertainty | receiver tracking |
| observations | epoch measurements, manifests, decisions, support classes, uncertainty classes | receiver observation construction and nav consumption |
| quality | measurement quality, covariance status, rejection reasons | receiver and nav interpretation |
| differencing | single- and double-difference records | nav and RTK consumers |
| signal timing | travel time, transmit time, and delay alignment evidence | receiver production, nav use |
Boundary Decisions¶
- Core records must stay solver-neutral and runtime-neutral.
- Receiver owns how acquisition, tracking, and observations are produced.
- Signal owns reusable code and DSP facts used by receiver.
- Nav owns estimator, correction, PPP, RTK, and differencing behavior.
- Infra owns persistence of these records after they become artifacts.
First Proof Check¶
Inspect crates/bijux-gnss-core/src/observation/,
crates/bijux-gnss-core/src/observation_quality.rs,
crates/bijux-gnss-core/docs/CONTRACTS.md,
crates/bijux-gnss-core/docs/SERIALIZATION.md,
crates/bijux-gnss-core/tests/tracking_artifact_validation.rs, and receiver or
nav tests that serialize or consume observation records.