# V2 DLC Content Delivery

This runbook covers `TODOS.phase-72.72.12.2.10`: DLC and expansion content
delivery for downloadable content packs, entitlement verification, and content
unlocking.

The implementation lives in `@v2/dlc-content-delivery-service` at
`apps/v2/dlc-content-delivery-service/`. Its contract is
`V2/ue/Content/V2/LiveOps/DlcContentDelivery_V2_Contract.json` and the
validation gate is `V2/ue/Tools/check-v2-dlc-content-delivery.py`.

## Downloadable Packs

DLC content packs define:

- `packId`
- `packKind`
- `platformSku`
- `entitlementRef`
- `contentVersion`
- `manifestHash`
- `assets`
- `unlocks`

Supported pack kinds are `fighter-pack`, `story-expansion`, and `cosmetic-pack`.
Supported asset and unlock types are `fighter`, `story`, and `cosmetic`.

## Entitlement And Unlocking

`buildV2DlcContentDeliverySurface` publishes downloadable content packs and
their unlock records. `planV2DlcContentDownload` verifies account entitlement
references before returning pending download assets and content unlocking state.

Accounts without the required entitlement receive
`lockedReason: entitlement-required`; they do not receive downloadable assets or
unlocked content.

Primary APIs:

- `buildV2DlcContentDeliverySurface`
- `planV2DlcContentDownload`

Service endpoints:

- `GET /v2/live-ops/dlc/packs`
- `GET /v2/live-ops/dlc/packs/{packId}/download-plan`
- `POST /v2/live-ops/dlc/packs/{packId}/unlock`

## Operator Flow

1. Author DLC content packs with platform SKU, entitlement reference, content
   version, manifest hash, downloadable assets, and unlock records.
2. Publish pack manifests through `buildV2DlcContentDeliverySurface`.
3. Verify entitlement refs through `planV2DlcContentDownload` before returning
   download assets.
4. Unlock fighter, story, or cosmetic content only when entitlement verification
   succeeds.
5. Keep `requiresClientPatch: false`; DLC delivery is a content download and
   entitlement update.

## Gates

- `dlc-content-delivery-package`
- `dlc-content-delivery-downloadable-packs`
- `dlc-content-delivery-entitlement-verification`
- `dlc-content-delivery-content-unlocking`
- `dlc-content-delivery-validation`
- `dlc-content-delivery-ci-wired`

## Verification

```sh
pnpm --filter @v2/dlc-content-delivery-service test
pnpm --filter @v2/dlc-content-delivery-service typecheck
pnpm --filter @v2/dlc-content-delivery-service lint
pnpm --filter @v2/dlc-content-delivery-service build
python3 V2/ue/Tools/check-v2-dlc-content-delivery.py
```
