# TODO: BAP Unicast Simple Control Implementation

## Phase 1: Foundation and Discovery
 - [x] Define core types for Configurations and Codec Capability Settings (enums/structs).
 - [x] Implement `BapUnicastManager` skeleton with `PeerId` mapping.
 - [ ] Implement `add_peer` function:
    - [ ] Connect to PACS and read capabilities.
    - [ ] Connect to ASCS and discover ASEs.
    - [ ] Implement mapping logic from raw PACS/ASCS data to spec-defined Configurations.

## Phase 2: Stream Control (Prescriptive)
 - [ ] Implement `start_streaming`:
    - [ ] Generate Codec Specific Configuration LTVs for requested setting.
    - [ ] Drive ASCS state machine (Config Codec, Config QoS, Enable).
    - [ ] Extract and return CIS handles upon success.
 - [ ] Implement `stop_streaming` / `release`:
     - [ ] Drive ASCS state machine back to Idle.
     - [ ] Ensure CIS is released.

## Phase 3: Pause and Resume
 - [ ] Implement `pause_streaming`:
     - [ ] Move ASEs to a state that retains CIS (e.g., QoS Configured or custom handling).
 - [ ] Implement `resume_streaming`:
     - [ ] Move ASEs back to Streaming state.

## Phase 4: Testing Support
 - [ ] Ensure `start_streaming` skips capability validation check against discovered PACS data to allow testing unsupported configurations.
