Smoothed audio level in 0..1 for meters, sourced from LiveKit's per-participant audio level.
Connection quality bucket as LiveKit reports it.
The participant's display name (name), when set; falls back to Identity.
Whether the participant currently has a published, unmuted microphone track.
Whether the participant currently has a published, unmuted camera track.
Stable, application-assigned participant identity (the diarization / addressing key).
Whether this is the local participant (the human running this client).
Whether the participant is currently sharing their screen.
Whether the participant is currently speaking (LiveKit voice-activity detection).
The underlying livekit-client participant, exposed ONLY so a UI layer can attach media tracks
(view.Raw.getTrackPublication(...)?.track?.attach(el)). Do not mutate it directly — drive the
room through import('./livekit-room-controller').LiveKitRoomController instead.
The participant's room role, derived from metadata (the agent bot reports as 'agent').
A normalized view of one room participant. This is what a UI grid renders — one tile per view. Raw is included so the UI can attach the participant's video/audio tracks to DOM elements.