Which way samples flow, relative to the model.
OptionalEncodingWire encoding, where it is negotiable or worth pinning — 'audio/pcm;rate=16000',
'image/jpeg', 'video/vp8'. Absent on a request means "the profile's default".
OptionalLabelA human-readable name for the source feeding this track ("Whiteboard", "Camera"). Used in context notes that tell the model what it is looking at, and in the UI's "agent can see" list.
The modality this track carries.
OptionalRateSample or frame cadence where meaningful — fps for video, Hz for audio.
OptionalRequiredWhether this track is required for the session to proceed (true) or optional/best-effort (false).
When optional, failure to establish the track does not terminate the session.
OptionalRequiresWhether establishing this track needs an explicit human grant — camera, screen capture, microphone, biosignals.
A track property rather than per-modality special-casing in the UI, so a host can prompt generically and the audit trail is uniform across modalities we have not invented yet.
OptionalSourceWhich SOURCE feeds this track, when more than one independent stream of the same modality and
direction can exist (several inbound video streams on a model that accepts them). Absent means
"the one stream of this modality and direction", which is every track today: a model that
accepts a single inbound video stream gets one track, and an arbiter decides which source is
written to it (VideoSourceArbiter in @memberjunction/ai-realtime-client).
The id is opaque to the model session; it is a correlation key between a source (a camera, a
shared screen, a whiteboard) and the stream it occupies. Two requested tracks with the same
modality and direction but different SourceIDs are distinct streams, not duplicates.
OptionalUsageHow this track is metered. Absent means the session's own basis applies.
What a track IS — the negotiable description of one directional stream of one modality.
Used in three roles, which is why every field past the first two is optional: a model DECLARES what it supports, a session REQUESTS what it wants, and the driver REPORTS what it established.