# V2 Age-Gate Primitive-Fitness Audit

Decision: keep `@aphrodite/age-verification`, but parameterize it for V2's
mature-rated fighting-game use case instead of using its adult-content default
profile or promoting a new primitive into `@oshun/identity`.

## Audit Result

- Primitive: `@aphrodite/age-verification`
- V2 bridge: `@v2/aphrodite-age-gate`
- Audit id: `aphrodite.age-verification.v2-primitive-fitness-audit`
- Verdict: fit with V2 mature-game profile
- Implementation decision: parameterize Aphrodite primitive
- Oshun identity promotion: no

## Required V2 Profile

The V2 profile is `mature-rated-fighting-game`.

- Consent prompt flow: rating-board disclosure with platform parental controls,
  not adult-content onboarding language.
- KYC provider selection: progressive platform-first checks; document
  verification only when a region requires it.
- Age thresholds: sourced from `V2/legal/rating-boards.json` and Oshun region
  rules, not a hard adult-content 18+ default.
- Retry / lockout: soft-lock gated content, leave the base game playable, and
  hand off to parental controls where needed.
- Parental-control hand-off: platform family controls own minor-account
  decisions.
- Adult-content compliance layers: 2257, performer-protection, and anti-CSAM
  performer workflows are not V2 game content-gate inputs.

## Evidence

`@aphrodite/age-verification` already has provider, compliance, retry, audit,
and region-rule primitives. The package is usable for V2 only after the V2
profile narrows the workflow to game-rating and platform-family-control needs.

The adult-content default profile is rejected because it would over-collect and
over-block for a boxed fighting game launched with Mature 17+ / 18+ regional
ratings. V2 does not need performer record-keeping, performer-protection, or
adult-content producer workflows for gore tier, adult fatalities, and
region-conditional cinematics.

## Completion Contract

`buildV2AgeGatePrimitiveFitnessAudit()` returns the audit decision in code.
`buildV2AgeGateContentDecision()` and `@v2/aphrodite-age-gate` now include the
mature-game profile markers:

- `adultContentProfileRejected: true`
- `record2257Required: false`
- `performerProtectionWorkflowRequired: false`
- `antiCsamPerformerWorkflowRequired: false`
- `parentalControlHandOffRequired: true`
- `mayInfluenceRollback: false`
