3.2.0
Breaking
Live telemetry moved to engine.diagnostics. The 1 Hz liveTelemetry snapshot was the last timer-driven @Published on the engine itself: the sampler rewrote it every second of every session (VOD included), so any SwiftUI view observing the engine re-rendered once per second for the whole session. On tvOS that was enough to blink an open native Menu from outside the player (reported by @ohjey in #29 after adopting the 3.0.0 clock split). liveTelemetry now lives on EngineDiagnostics, a separate ObservableObject mirroring PlaybackClock.
Migration: plain reads (engine.liveTelemetry) compile unchanged through a read-only forwarder. Combine/SwiftUI subscriptions move from engine.$liveTelemetry to engine.diagnostics.$liveTelemetry. Stats overlays should observe engine.diagnostics instead of the engine.
Added
tvOS integration note: SwiftUI Menu in custom player chrome. On tvOS 26, an open SwiftUI Menu blinks its focused row whenever any SwiftUI render transaction runs in the hosting tree, even in unrelated leaf views (SwiftUI issue, reported to Apple). The README now documents the UIKit-owned menu-button pattern (UIButton + button.menu in a UIViewRepresentable that replaces the UIMenu only on real item changes), courtesy of @ohjey (#29).
Credits
Thanks @ohjey for the follow-up investigation on #29: the elimination repro for the Menu flicker, spotting the remaining 1 Hz publisher, and the menu-button pattern.