Context
#2046 split status, volume, seek, and announcer behavior into component-owned package boundaries, leaving only lifecycle/action primitives shared. Packaged video/live Skins now compose those components inside a layout-only indicator overlay, but canonical source predates that architecture and emits none of them.
Acceptance criteria
Context
#2046 split status, volume, seek, and announcer behavior into component-owned package boundaries, leaving only lifecycle/action primitives shared. Packaged video/live Skins now compose those components inside a layout-only indicator overlay, but canonical source predates that architecture and emits none of them.
Acceptance criteria