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.jsonand 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: truerecord2257Required: falseperformerProtectionWorkflowRequired: falseantiCsamPerformerWorkflowRequired: falseparentalControlHandOffRequired: truemayInfluenceRollback: false