# ADR: Identity Entitlement Claim API

Status: Accepted  
Date: 2026-05-12

## Decision

Cross-product grants use signed entitlement claims issued by `@oshun/identity`.
V2 consumes claims, never raw source-product activity. The executable V2 adapter
is `apps/v2/cross-product-entitlement`; the shared claim evaluator is
`libs/shared/identity/src/v2-entitlement-claims.ts`.

## Claim Shape

Required fields:

- `claim_id`
- `subject_account_id`
- `issuer`
- `grant_type`
- `grant_payload`
- `source_sensitivity`
- `region_constraints`
- `issued_at`
- `expires_at`
- `revocation_uri`
- `signature`

## Privacy Rule

Sensitive products must require explicit per-grant opt-in before any visible V2
title, badge, cosmetic, or lobby signal is shown. Aphrodite is the launch
sensitive adult source. Aphrodite-derived grants require opt-in per individual
grant plus an out-of-context warning, and V2 blocks implicit lobby / title /
badge surfacing even after the grant is accepted.
