# Voice Workspace Feature

Room-level composition shell for live voice-channel streams. This feature owns the mixed workspace UI that can show:

- screen shares
- webcam streams
- voice-session workspace state such as expanded, minimized, focused, and mini-window position

It intentionally lives under `features/room/` instead of any single domain because it composes multiple domains together:

- `VoiceWorkspaceService` from `domains/voice-session` for panel state
- `VoiceConnectionFacade` from `domains/voice-connection` for voice and camera streams
- `ScreenShareFacade` from `domains/screen-share` for screen-share capture and remote share requests

## Files

```
voice-workspace/
├── voice-workspace.component.ts              Live stream workspace shell
├── voice-workspace.component.html            Grid, widescreen, and mini-window layout
├── voice-workspace-stream-tile.component.ts  Per-stream tile UI and fullscreen controls
├── voice-workspace-stream-tile.component.html
├── voice-workspace-playback.service.ts       Per-peer playback mute/volume state for stream audio
└── voice-workspace.models.ts                 Stream item contracts (`screen` or `camera`)
```

## Boundary

This feature is the right home for mixed live-stream presentation. Screen-share-specific behavior stays in `domains/screen-share`, and voice/camera transport stays in `domains/voice-connection` plus `infrastructure/realtime`.
