User story: Register a room
**As a** room author, **I want** to register a room that controls its own navigation, search, and player expansion, **so that** I can create a tailored experience for a specific audio type.
User story: Register a room
As a room author,
I want to register a room that controls its own navigation, search, and player expansion,
so that I can create a tailored experience for a specific audio type.
Priority
Must (room framework API), Should (search integration, player expansion)
Acceptance criteria
- Given I implement the room interface, when my room is registered, then it appears in the shell’s room list and can be activated by the user.
- Given my room is active, when the user navigates within my room, then my navigation handlers are called and the core does not override them.
- Given my room declares search filters (e.g., types=[“track”, “album”]), when the user searches in my room, then the search manager applies those filters.
- Given my room registers a player expansion view, when the user expands the mini-player, then my view is displayed with the current content metadata.
- Given my room does not register a player expansion view, when the user expands the mini-player, then a default view is shown (no crash).
Notes / constraints
- The room API is in the core platform language (constraint C7). Room authors who want to use another language must use the plugin system.
- v1 ships only the Music Room (FR-MUSIC-1). The room framework API is validated by the Music Room implementation.
Traceability
- Requirement IDs: FR-ROOM-1, FR-ROOM-2, FR-ROOM-3
- NFRs: NFR-PERF-6
- Feature docs:
docs/user/features/room-framework.md