A street address is relative to a city grid. A prefix is relative to a table. Even a GPS fix, the thing that feels most like an absolute position, is relative to WGS84, a mathematical ellipsoid bolted to a spinning planet. The absolute address is a fiction, and it survives on Earth because every consumer of the number agrees on the same map without ever discussing it.
Space revokes the agreement. There is no shared ground to stand on, so the ground has to be written down.
Written down properly, a position has four parts. A target: the thing being located. A center: the point the numbers are measured from. A frame: the set of axes the numbers are expressed on. A time: the instant the claim is true, in a named time scale. Drop any one of the four and the remaining numbers stop being facts.
post 013 (Which Map, Which Clock) was the incident report: one relabeled frame, 192.7 kilometers of silent error growing to 12,709. This entry is the model that incident forced us to write down properly.
What holds still
A coordinate frame is not a place. It is an agreement about what holds still, and every frame in use exists because some calculation is only sane under one particular agreement.
Hold the rock still and you get a body-fixed frame. ITRS for Earth. Antennas, runways, and ground stations live here, because they are bolted to the rock and the rock is the thing they do not move relative to. The price is that everything in orbit traces a spirograph. A clean 550 kilometer circular orbit, drawn on a body-fixed map, is a mess of loops drifting westward as the planet turns beneath it.
Hold the stars still and you get an inertial frame. GCRS for Earth-centered work. Orbits live here, because here an orbit is what the physics says it is: an ellipse, obeying Kepler, perturbed gently by the bulge of the planet. The price is that every ground station is now moving at up to 465 meters per second.
Hold a line between two bodies still and you get a rotating frame. Pin the Sun-Earth line and the L2 point stops being a moving target and becomes a fixed address, which is the only reason anyone can talk about parking a relay there. The price is that the physics picks up centrifugal and Coriolis bookkeeping, and everything outside the two bodies spins.
Hold the solar system's account books still and you get a barycentric frame, centered on the point the whole system orbits. Planetary ephemerides balance here. No single body is privileged, which is exactly the property you want when three of them matter at once.
None of these frames is the correct one. Each is correct for the calculation that lives in it, and the discipline is not choosing the best map. It is refusing to subtract across two of them.
The clock is part of the map
The fourth part of the contract gets forgotten because on Earth all the clocks agree well enough to hide it. Off Earth they do not.
UTC is a civil clock, carrying leap seconds so that noon stays near the sun. Planetary ephemerides do not speak it. They speak uniform time scales, TDB and its relatives, built so that the equations of motion integrate cleanly with no inserted seconds. The two clocks currently disagree by more than a minute of accumulated offset, and a minute of time is a full degree of planetary motion for a body like Luna. Ask an ephemeris where the Moon is, hand it the wrong clock, and it will answer precisely, for the wrong instant.
Sessions in NodalArc are authored in UTC, because humans schedule experiments in civil time. The ephemeris provider does the conversion arithmetic under the hood. The point of teaching it here is that the conversion exists. A timestamp without a named time scale is the temporal version of a prefix without a table.
SPICE is the toolkit NASA's Navigation and Ancillary Information Facility has maintained for decades, and it is the industry's institutional memory on this subject. A SPICE state is the position and velocity of a target relative to a named center, on a named frame, at a named ephemeris time. Four parts, none optional.
The kernel files it reads, SPK and friends, are how real mission trajectories move between institutions. When a lab needs a spacecraft's actual path, the answer is usually a kernel, not a formula.
The lab's agreement, written down
NodalArc's common frame today is GCRS. That is a runtime invariant, not a session preference, and the distinction is deliberate. A configurable canonical frame would mean every consumer of geometry re-checking its assumptions per session, which is how frame bugs breed. The runtime profile states the agreement once; every propagator boundary, every composition, every kernel is held to it. Ephemeris kernels declaring any other frame are refused under their own named refusal category, not coerced.
The session declares its share of the contract in the ephemeris block. This is the actual one from the cislunar sessions, from catalog/nodalarc/sessions/earth-luna-dtn.yaml:
ephemeris:
provider: skyfield_bsp
quality_tier: de440s
kernels:
- id: de440s
path: configs/ephemerides/de440s.bsp
sha256: c1c7feeab882263fc493a9d5a5b2ddd71b54826cdf65d8d17a76126b260a49f2
coverage_start: '1849-12-25T00:00:00Z'
coverage_end: '2150-01-21T00:00:00Z'
targets:
- nodalarc:bodies/earth.yaml
- nodalarc:bodies/luna.yaml
frame: gcrs
Read the fields as claims. A named provider. A checksummed kernel, so the bytes that positioned Luna are the bytes the experiment says they were. A coverage window, so a session outside it fails instead of extrapolating. Declared targets. A declared frame. Where the Moon was is part of the measurement, and this block is its provenance.
The missing word is origin
One word is still implicit in that contract, and the notebook owes an honest entry about it. Today's state grammar carries an epoch, a frame, a position, and a velocity. It does not carry a center, because in an Earth-Luna profile with an Earth-relative common frame, the center is always Earth and the software can assume it.
Point the same grammar at Mars and the assumption dies. A vector labeled only frame: j2000 is ambiguous the moment more than one body matters. Relative to Earth's center? Mars's? The Sun's? The solar system barycenter? Same axes, wildly different places. The frame names the directions of the axes. The origin names where they are planted, and those are different facts.
The direction is set by the same rule that governs everything else in this lab. Canonical storage stays coherent for the whole solar system: one origin, one inertial frame, one uniform clock. Local physics works in derived frames, body-fixed for a Mars horizon, rotating for a Lagrange station, Earth-centered for a LEO shell, each derived from the canonical state at the moment of use. One truth, many projections, never the reverse.
A frame is an agreement about what holds still. The lab writes its agreements down, checks them at every border, and refuses the handshake when two subsystems arrive holding different ones.
post 015 (Fit for Purpose) takes the other half of the motion problem. A state is a photograph, and a photograph does not say what happens next. Propagators do, and choosing one is not about prestige. It is about which errors your experiment can afford.