R01 · Time model

A subtick is an ordered coordinate, not a tiny tick.

The word “subtick” is often flattened into an imaginary fixed grid. Subticked instead preserves the authoritative coordinates actually present in the server-parsed replay artifact.

The problem

A tick number alone cannot express every meaningful event.

Multiple inputs, state changes, and events may occur within one nominal server-tick interval. Ordering them only by tick collapses evidence. Ordering them by rendered frame ties truth to display cadence.

The coordinate

Use three sortable fields.

ReplayTime = (server_tick, phase_q32, ordinal)
server_tick
The nominal tick interval.
phase_q32
A fixed-point position inside the interval.
ordinal
A tie-breaker when multiple authoritative changes share the same time.

A convenience microsecond value can lay out the UI, but deterministic ordering should not depend on floating-point seconds.

Stepping

“Next subtick” means next evidence.

The correct operation advances to the next authoritative coordinate found in the artifact. It does not add an arbitrary 1/8, 1/16, or 1/64 slice. This makes stepping meaningful even when event density changes.

Rendering

A smooth picture can still be honest.

Between two authoritative transform samples, a renderer may interpolate position for presentation. Discrete state remains the last authoritative value at or before the target coordinate. Research mode should be able to disable interpolation and snap directly to samples.

Invariant

Changing monitor refresh rate, playback speed, renderer backend, or pause history cannot change the canonical state at an authoritative coordinate.