# V2 Maat Live-Service Calendar Integration

`@v2/maat-live-service-calendar` makes `@maat/strategy` the source of truth for
V2 live-ops calendar planning. V2 does not own a standalone live-calendar
schema; it consumes the Maat contract and projects it to online services,
Unreal, companion surfaces, and web roadmap surfaces.

## Maat-Owned Surfaces

- V2 seasons and ranked-season windows
- Crown Points pool and scoring rules
- Pro Circuit calendar events
- anniversary events
- charity events
- Balance ramp windows

## V2 Projection

`buildV2MaatLiveServiceCalendarSurface()` returns:

- `strategySourceOfTruth: true`
- `standaloneV2LiveCalendarReplaced: true`
- `noStandaloneV2CalendarSchema: true`
- `mayInfluenceRollback: false`
- required gRPC surfaces for ranked seasons, Crown Points, and esports finals
- required event topics for rank, tournament, anniversary, and charity starts

The Unreal `V2Services` registry exposes `@maat/strategy` through the
`maat-strategy` adapter. The adapter is off rollback authority; deterministic
combat and rollback simulation never call the live-ops calendar.

## Public Calendar Projection

V2 publishes the player-facing projection at `apps/v2/web/calendar/`. The
projection is validated by `V2/ue/Tools/check-v2-live-service-calendar.py` and
described by
`V2/ue/Content/V2/Online/LiveServiceCalendar/LiveServiceCalendar_V2_Contract.json`.
The projection includes the six-month public window, seasonal region controls,
anniversary drops, charity progress, console tie-ins, re-engagement campaigns,
reveal windows, memorial consent gates, and MoviePipeline trailer requirements.
