# Real-Time Player Count Dashboard

Phase 72.5.2.1 adds `@v2/realtime-player-count-dashboard`, an operational
dashboard surface for concurrent players by region, game mode, and platform. The
policy is `v2-realtime-player-count-dashboard-v1`.

`buildV2RealtimePlayerCountDashboardSurface` consumes player-count segment
samples, deduplicates them by timestamp plus region/mode/platform, keeps the
latest sample per segment, and emits a current dashboard snapshot. The surface
uses `@iris/analytics-realtime` for realtime widgets and spike alerts while V2
owns the player-count semantics.

## Operator Surface

The dashboard starts with the current total concurrent player count, then breaks
the same live sample set down by region, game mode, and platform. The surface
also carries matchmaking and in-match totals so operations can distinguish a
population spike from a queueing issue.

Freshness is explicit:

- `fresh`: the newest segment sample is within the configured staleness window.
- `stale`: the dashboard can render the last known counts, but the feed is old.
- `empty`: no player-count samples were available, so totals remain zero.

The service intentionally emits a dense operational model rather than a
marketing-style hero page. Any rendered UI should preserve the first-screen
priority order: total concurrent players, freshness, region table, game-mode
table, platform table, and alerts.

## Verification

Targeted verification:

```bash
pnpm --filter @v2/realtime-player-count-dashboard run typecheck
pnpm --filter @v2/realtime-player-count-dashboard run test
python V2/ue/Tools/check-v2-realtime-player-count-dashboard.py
python -m json.tool V2/ue/Build/Telemetry/v2-realtime-player-count-dashboard.json
```
