Fighting Game · Guides & deep dives

V2 Age-Gate Primitive-Fitness Audit

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

4sections1 minread

On this page

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