# V2 Uzume Broadcast Pipeline

`apps/v2/esports-tools/` is packaged as `@v2/esports-tools` and composes
`@uzume/broadcast` as the primary V2 esports broadcast pipeline.

## Contract

- `@uzume/broadcast` owns switching, graphics, multiviewer, replay, SRT
  contribution feeds, stream health, and multi-platform stream configuration.
- Standalone OBS / NDI / vMix glue is not a primary V2 broadcast integration.
  NDI video routing remains owned by `@uzume/prism`, and vMix can appear only as
  an external switcher adapter behind the Uzume pipeline.
- OBS WebSocket is retained only for streamer-mode notification suppression, so
  local player notifications can be hidden during creator streams without making
  OBS a broadcast authority.
- The bridge is off rollback: `off-rollback-broadcast-operations`,
  `mayInfluenceRollback: false`, `deterministicImpact: none`.

## V2 Surfaces

`buildV2EsportsBroadcastPipeline()` emits a single plan for program feed, clean
feed, caster overlay, replay control, production multiviewer, stream health, and
streamer-mode notification suppression. The plan includes the `@uzume/broadcast`
metadata, event topics such as `v2.esports.broadcast.pipeline.ready`, and reason
codes when a tournament plan tries to promote standalone OBS / NDI / vMix as a
primary integration.

## Verification

`V2/ue/Tools/check-v2-uzume-broadcast-pipeline.py` validates the package, docs,
Unreal adapter registry, CI workflow hook, and reciprocal Uzume tracker.
