0x01 tick (u64), 0x02 ts_sim_ns (i64), 0x03 ts_send_ns (u64), 0x80–0xFF vendor. payload_len counts payload bytes only.
Inline JSON form
In theinline binding the same frame is an obs.frame or cmd.frame notification (AWP-DAT-004):
awp:obs-frame
flags in JSON carries bits 0, 1, and 3 only; extension values are the named fields tick, ts_sim_ns, and ts_send_ns (vendor extensions: x-<vendor>.<name>). A streaming observation frame carries its send time (test vector streaming_ts_send):
awp:obs-frame
Worked example
Keyframe on channel 1, seq 42,ts_mono_ns 913005200000, tick 4212, 16-byte payload (test vector keyframe_tick):
schemas/test-vectors/frames.json and are exercised by the reference decoder in CI (AWP-DAT-008).