# Existing Schema Inventory and Identity Conflicts (YSD-0104)

Compiled 2026-07-18 at working-tree commit `d099eb67e1`. Method: one sequential
repository sweep (Explore agent) across the 12 schema families named by
YSD-0104, followed by main-session spot-verification of ten load-bearing claims
by reading the cited files (all confirmed: aja dual annotation models with
divergent enums, sophia `Notebook`:935 / `EvidencePack`:971 / `RightsStatus`:72,
`CanonicalPlatformAuditEventSchema`:160, metis dual `MasteryLevel`
(`analytics.ts`:19–27 vs `profiling/types.ts`:30–38), dual `model AuditLog`
(sophia:1331, yemaya:1118), oshun `NisabaAnnotation`:2017 /
`NisabaNotebook`:2111, bellona `REMOTE_REPLAY_BUNDLE_VERSION`:66, live-media
`PlaybackGrantClaimsSchema`:44).

Paths are repo-relative. Types listed are the load-bearing few, not exhaustive.

## 1. Media

- `apps/aja/svc-reference-video/src/types.ts` — **aja**. Branded IDs
  `VideoId/SegmentId/ClipId/EmbeddingId` (`vid_…` brands, `Math.random`
  generators). Core: `Video`, `VideoMetadata`, `VideoStreamMetadata`,
  `AudioStreamMetadata`, `VideoRendition`, `ThumbnailSprite`, `VideoEmbedding`,
  `Clip`.
- `libs/shared/live-media/src/media-publication.ts` + `identifiers.ts` —
  **shared/live-media**. Zod `MediaPublicationRecordSchema`,
  `MediaObjectPathSchema`, `mediaPublicationObjectPrefix()`; UUID-branded
  `MediaPublicationIdSchema`, `LiveStreamIdSchema`, `TenantIdSchema`; HLS/DASH
  renditions as `hlsMasterKey`/`dashManifestKey`.
- `libs/yemaya/database/prisma/schema.prisma` (419–490) — **yemaya**.
  `model Asset` (`storageKey`, `mimeType`, `checksum`, `metadata Json`), enums
  `AssetType` (IMAGE/VIDEO/AUDIO/MODEL_3D/…), `AssetStatus`; plus `AssetTag`,
  `AssetUsage`; FK-free cross-domain refs `isisGenerationId`, `bellonaAssetId`.
- `libs/yemaya/assets/drizzle/0000_yemaya_lfs_quota_initial.sql` —
  **yemaya/assets**. Drizzle `yemaya_lfs_*` quota tables (Git-LFS media
  storage).
- `libs/euterpe/distribution/src/metadata/index.ts`,
  `libs/euterpe/lyria/src/prompting-assets/types.ts` — **euterpe** (music
  distribution / prompt-asset metadata; distinct from the video model).

## 2. Annotation

- `apps/aja/svc-reference-video/src/types.ts` (582–696) — **aja**.
  `interface Annotation`,
  `AnnotationType = point|bounding_box|polygon|polyline|skeleton|label|text|timestamp|correction`;
  branded `AnnotationId`; also `Segment`, `Comment`.
- `apps/aja/svc-reference-video/src/annotation.ts` (34–660) — **aja** (same app,
  second model). `VideoAnnotation` discriminated union
  (`Timestamp|Segment|Skeleton|BoundingBox|Keypoint|Polygon|Label|Note|Action|Quality`);
  different `AnnotationType` (adds `note/action/quality/keypoint`);
  `AnnotationStatus = draft|submitted|approved|rejected|archived`;
  `AnnotationTrack`, `AnnotationLayer`, class `AnnotationService`.
- `libs/nisaba/core/src/types/annotations.ts` — **nisaba**. W3C Web-Annotation
  flavored: `AnnotationTypeValue`, `AnnotationMotivation`, selectors
  `TextQuoteSelector`, `TextPositionSelector`, `FragmentSelector`,
  `XPathSelector`, union `AnnotationSelector`.
- `libs/nisaba/database/prisma/schema.prisma` (110–541) — **nisaba**.
  `model Annotation` (cuid id, `targetUri`, `targetSelector Json`,
  `motivation`), `model AnnotationLayer`; enums `AnnotationType`,
  `AnnotationStatus (ACTIVE…)`.
- `libs/oshun/persistence/prisma/schema.prisma:2017` — **oshun**.
  `model NisabaAnnotation` → `v1_nisaba_annotation` contract projection
  (`target Json`, `citationIds`, `linkedNotebookIds`,
  `contractSchema/contractVersion/payloadHash`, tombstones).

## 3. Notebook

- `libs/nisaba/workspace/src/research-environment.ts` — **nisaba**.
  `ResearchProject`, `ProjectTask`, `Milestone`, `ProjectResource`, enums
  `ProjectStatus/ProjectRole/ResearchType/TaskStatus`; `PROJECT_TEMPLATES`; plus
  `web-reading-workspace.ts`, `scholar-mode/scholar-profile.ts`.
- `libs/nisaba/database/prisma/schema.prisma` — **nisaba**.
  `model CriticalEdition` (+`EditionStatus`), `PersonalLibraryItem`, `Bookmark`,
  `ResearchProject`, `Passage`, `CanonicalReference`.
- `libs/nisaba/canon/src/*` — **nisaba**. Corpus/canon definitions
  (`hebrew-bible.ts`, `septuagint.ts`, `pali-canon.ts`, `quranic-canon.ts`,
  `canonical-uri.ts`, `cts-cite.ts`, `versification-mapping.ts`).
- `libs/sophia/database/prisma/schema.prisma:935` — **sophia**. `model Notebook`
  (research notebook backing EvidencePacks).
- `libs/oshun/persistence/prisma/schema.prisma:2111` — **oshun**.
  `model NisabaNotebook` (`v1_nisaba_notebook`: `annotationIds`, `citationIds`,
  `conceptNodeIds`, `passageIds`, `items Json`), plus `NisabaStudyPlan`.

## 4. Evidence

- `libs/sophia/schemas/src/claim.ts` — **sophia**. Zod `ClaimTypeSchema`,
  `ClaimOriginSchema`, `ExtractedClaimSchema`, `CitationNeededFlagSchema`,
  `ClaimSourceMatchSchema`, `CitationSeveritySchema`.
- `libs/sophia/schemas/src/citation.ts` — **sophia**. `SourceSchema`,
  `InlineCitationSchema`, `CitationStyleSchema`, `ReliabilityScoringSchema`,
  `TextPositionSchema`.
- `libs/sophia/schemas/src/ids.ts` — **sophia**. Branded `ClaimId`,
  `CitationId`, `DocumentId`, `EntityId`, `RelationId`, `SourceId`,
  `KnowledgePackId`.
- `libs/sophia/database/prisma/schema.prisma` — **sophia**. `model EvidencePack`
  (971: `claims/sources/excerpts/citations/ retrievalTrace/rationale Json`,
  `notebookId`, `provenanceBundleId`), `Citation`, `CanonicalCitation`,
  `CitationTrail`, `GroundedAnswer`, `GroundedReport`, `SourceSet`.
- `libs/oshun/persistence/prisma/schema.prisma` — **oshun**. `VeritasClaim`
  (1131), `VeritasEvidencePack` (1196), `MetisAssessmentEvidencePack` (2514),
  `CrossCuttingEvidencePack` (2885) — projections.

## 5. Rights

- `libs/shared/live-media/src/playback-grant.ts` — **shared/live-media**. Zod
  `PlaybackGrantRequestSchema`, `PlaybackGrantClaimsSchema`,
  `PlaybackGrantDescriptorSchema`, `PlaybackEntitlementDecisionSchema`;
  HMAC-signed grants; `PLAYBACK_GRANT_ERROR_CODES`; sibling
  `publisher-grant.ts`; capability strings in `scope.ts`
  (`live-media:stream:view` …).
- `libs/yemaya/agents/src/creative/performance-reference-library.ts:36` —
  **yemaya**. Inline literal
  `'owned'|'licensed'|'fair-use-reference'| 'internal'` (not a shared schema).
- `libs/sophia/database/prisma/schema.prisma:72` — **sophia**.
  `enum RightsStatus` on documents (separate vocabulary).
- `libs/shared/audit-platform/src/rights-report.ts`, `model-license-review.ts`,
  `voice-likeness-consent.ts` — **shared/audit-platform** (rights reporting /
  license review / likeness consent).
- `libs/oshun/persistence/prisma/schema.prisma` — **oshun**.
  `CrossCuttingConsentRecord` (2791), `OriPresenceConsentEvent` (134); plus
  `libs/oshun/memory-iris/src/consent-ledger.ts`, `data-rights.ts`.

## 6. Search

- `apps/aja/svc-reference-video/src/types.ts` (858–935) — **aja**. `SearchQuery`
  (text/image/video/motion; mode `text|visual|motion|hybrid`), `SearchResult`,
  `SearchResultItem`.
- `apps/sophia/search-api/src/types.ts` — **sophia**. A different `SearchQuery`,
  `SearchFilters`, `SearchOptions`, `SearchResponse`, `HybridSearchConfig`,
  `BM25Config`, `RerankingConfig`; branded `QueryId`, `ResultId`, `ChunkId`,
  `CitationId`.
- `libs/sophia/semantic-search/src/types.ts` — **sophia**. `SearchType`,
  `SimilarityMetric`, `RankingFactor`, `FilterOperator`, `CollectionType`,
  `SearchFilter(s)`, `RankingWeights`; branded `SearchResultId`,
  `SearchSessionId`.

## 7. Graph

- `libs/sophia/knowledge-graph/src/types.ts` — **sophia**. Branded
  `NodeId/EdgeId/ConceptGraphId`; const `EntityType`, `RelationType`,
  `ConceptRelationship`; `GraphNode`, `GraphEdge`, `ConceptNode`, `ConceptEdge`,
  `Subgraph`, `TraversalResult`, `CentralityScores`.
- `libs/sophia/schemas/src/relation.ts` + `entity.ts` — **sophia**. Zod
  `RelationSchema`, `RelationTypeSchema`, `RelationDirectionSchema`,
  `RelationEvidenceSchema`; `EntityTypeSchema` + per-kind property schemas.
- `libs/sophia/citation-graph/src/types.ts` — **sophia**. Citation-graph
  node/edge types.
- `libs/yemaya/canon-graph/src/types.ts` — **yemaya**. `CanonNode`, `CanonEdge`,
  `CanonRelation`, `CanonNodeKind`, `CanonSnapshot`.
- `libs/nisaba/database/prisma/schema.prisma` — **nisaba**. `InfluenceEdge`,
  `ConceptMapping`, `MotifAttestation`; oshun projection
  `NisabaConceptGraphNode`.

## 8. Learning

- `libs/metis/core/src/types/types.ts` — **metis**. Branded
  `CourseId/LessonId/QuestionId`; `Course`, `CourseModule`, `Lesson`,
  `Question`, `CourseProgress`, `LessonProgress`, `QuestionResult` (extend
  `AuditFields`); enums in `core/src/enums/enums.ts`.
- `libs/metis/adaptive/src/path/fsrs.ts` — `FSRSCard`, `FSRSConfig`,
  `FSRSState`, class `FSRS`. `path/bkt.ts` — `BKTParams`, `TraceResult`,
  `BayesianKnowledgeTracing`. `path/spaced-repetition.ts` — `ReviewResult`,
  `SchedulerStats`, `SpacedRepetitionScheduler`. `path/types.ts` — `ReviewCard`,
  `MasteryGate`, `MasteryMilestone`, `LearningPath`, `SM2QualityRating`,
  `CardState`. `path/mastery-progression.ts` — `MasteryProgressionConfig`,
  `MasteryProgression`.
- `libs/metis/tutoring/src/loop/mastery-updaters.ts` (`MasteryBands`),
  `tutoring/src/analytics/analytics.ts` (`MasteryLevel`),
  `adaptive/src/profiling/types.ts` (another `MasteryLevel`).
- `libs/metis/database-types/src/schema/schema.ts` — **metis** (drizzle-style
  schema module); metis persistence materialized in oshun
  (`MetisLessonAssetBundle`:2333, `MetisAssessmentEvidencePack`:2514).

## 9. Replay

- `libs/aphrodite/game-runtime/src/replay/replay-system.ts` — **aphrodite**.
  `ReplayFileMagic='OSHRPLY'`, `ReplayFileVersion=1`; `ReplayFile`,
  `ReplayFileHeader`, `CompressedInputFrame`, `ReplayRecordingFrame`,
  `ReconstructedReplayState`, `ReplayKillCam`, `ReplayHighlight`,
  `ReplayClipExportJob`, `ReplayShareManifest`, `ReplayAntiCheatFinding`;
  `input-recorder.ts` (`InputRecorder`), `state-snapshotter.ts`.
- `libs/bellona/remote-protocol/src/replay-bundle.ts` — **bellona**. Zod
  `RemoteReplayBundleSchema`, `RemoteReplayBundleManifestSchema`,
  `RemoteReplayTimelineEntrySchema`, screenshot/keyframe/stream-segment/
  redaction/command/approval schemas; `REMOTE_REPLAY_BUNDLE_VERSION='1'`.
- `libs/bellona/remote-protocol/src/replay-export.ts` — **bellona**.
  `RemoteReplayExport`, `RemoteReplayComplianceSummarySchema`,
  `RemoteAuditChainExport`, `ReimportedAuditChainVerification`; formats
  `canonical-json|jsonl`.

## 10. Telemetry

- `apps/v2/telemetry-schema-migrations/src/telemetry-schema-migrations.ts` —
  **v2**. `TelemetryEventSchemaDefinition`, `TelemetrySchemaVersion`,
  `TelemetrySchemaMigration(Plan)`,
  `TelemetrySchemaCompatibility='additive'|'breaking'`,
  `TelemetrySchemaStability`.
- `apps/v2/player-behavior-heatmaps/src/player-behavior-heatmaps.ts` — **v2**.
  Heatmap/behavior aggregation; sibling apps `telemetry-event-replay`,
  `telemetry-session-reconstruction`, `telemetry-privacy-compliance`,
  `telemetry-rate-limiting`, `telemetry-data-export-api`,
  `telemetry-bi-export-connectors`.
- `libs/bellona/remote-adapters/src/telemetry-hooks.ts`,
  `libs/bellona/cross-dcc-consistency/src/telemetry-health.ts` — **bellona**
  (DCC/agent telemetry).

## 11. Signing

- `libs/shared/content-signing/src/index.ts` — **shared/content-signing**.
  `ED25519_ALGORITHM`, `sha256Hex`, `generateEd25519SigningKeyPair`,
  `ed25519Sign/Verify(Base64)`, `ClaimSigner`/`ClaimVerifier`,
  `Ed25519ClaimSigner`/`Ed25519ClaimVerifier`.
- `libs/shared/content-security/src/provenance.ts` —
  **shared/content-security**. `AIContentProvenanceManifest`, `C2PAIngredient`,
  `C2PAAction`, `C2PAAssertion`, `C2PAContentCredentialRequest`,
  `C2PASignerBinding`,
  `AIContentOrigin='human-created'|'ai-assisted'|'ai-generated'|'mixed'`.
- `libs/shared/audit-platform/src/provenance-attachment.ts`,
  `provenance-badges.ts`, `watermark-verification.ts`; plus
  `libs/oshun/c2pa-export/`.

## 12. Audit

- `libs/contracts/src/common/canonical-audit-event.ts:160` — **contracts**
  (platform-canonical). `CanonicalPlatformAuditEventSchema`,
  `CanonicalAuditActorSchema`, `CanonicalAuditTargetSchema`,
  `CanonicalAuditEvidenceSchema`, `CanonicalAuditOutcomeSchema`,
  `CanonicalAuditSeveritySchema (info|warning|error|critical)`,
  `IngestCanonicalAuditEventRequestSchema`.
- `libs/shared/audit-platform/src/hash-chain.ts` + `index.ts` —
  **shared/audit-platform**. `AuditChainEntry`, `AuditChainVerificationResult`,
  `HashChainedAuditEventStore`, `hashEvent()`, `chainHashStep()`,
  `InMemoryCanonicalAuditEventStore`, `AuditEventIngestService`.
- `libs/sophia/database/prisma/schema.prisma:1331` — **sophia**.
  `model AuditLog`
  (`action/entityType/entityId/previousState/newState/ userId/ipAddress`).
- `libs/yemaya/database/prisma/schema.prisma:1118` — **yemaya**. A separate
  `model AuditLog`.
- `libs/oshun/persistence/prisma/schema.prisma` — **oshun**. `AdminAuditEvent`
  (247), `OshunV1TombstoneAuditEvent` (48), `RailRingOptInAuditEvent` (119);
  `libs/oshun/memory-iris/src/ memory-audit.ts`, `consent-ledger.ts`.
- `libs/isis/database/src/generated/client/models/CanonicalAuditEvent.ts` —
  **isis** (generated Prisma materialization of the canonical event).
- `libs/bellona/remote-protocol/src/replay-export.ts` — `RemoteAuditChainExport`
  (a second hash-chain implementation, replay-tied).

## Migration / schema directories

- **nisaba** — `libs/nisaba/database/prisma/schema.prisma`
  (+`migrations/20260528000000_nisaba_initial/`): `Manuscript`,
  `CollationProject`, `VariantUnit`, `CriticalEdition`, `Annotation`,
  `AnnotationLayer`, `ConceptMapping`, `MotifAttestation`, `InfluenceEdge`,
  `CanonicalReference`, `Passage`, `PersonalLibraryItem`, `Bookmark`.
- **sophia** — `libs/sophia/database/prisma/schema.prisma`
  (+`migrations/20260412175956_initial_schema/`): `Document`, `DocumentChunk`,
  `Citation`, `Entity`, `Relation`, `KnowledgePack`, `Source`, `Concept`,
  `Notebook`, `EvidencePack`, `GroundedAnswer`, `CanonicalCitation`,
  `CitationTrail`, `GroundedReport`, `IngestionJob`, `AuditLog`.
- **yemaya** — `libs/yemaya/database/prisma/schema.prisma` (+migrations):
  `User`, `Organization`, `Project`, `Asset`, `AssetTag`, `Collection`,
  `Comment`, `Subscription`, `Invoice`, `Plugin`, `AuditLog`; plus drizzle
  `libs/yemaya/assets/drizzle/`.
- **oshun** — `libs/oshun/persistence/prisma/schema.prisma` (~30 dated
  migrations): canonical projections `NisabaAnnotation`, `NisabaNotebook`,
  `NisabaStudyPlan`, `NisabaConceptGraphNode`, `VeritasClaim`,
  `VeritasEvidencePack`, `MetisLessonAssetBundle`,
  `MetisAssessmentEvidencePack`, `CrossCuttingConsentRecord`,
  `CrossCuttingEvidencePack`, `AdminAuditEvent`, `OshunV1TombstoneAuditEvent`,
  `RailRingOptInAuditEvent`, `OriPresenceConsentEvent`.
- **metis** — no own Prisma schema;
  `libs/metis/database-types/src/schema/ schema.ts` (drizzle-style), persistence
  materialized in oshun.

## Incompatible identities and duplicated semantics

These are the conflicts the Section 2 shared contracts must resolve; each
carries the resolution obligation noted.

1. **Annotation — five competing models, three ID conventions.** aja
   `types.ts:653` (`AnnotationType` with `point/polyline/text/correction`) vs
   aja `annotation.ts:34` (`AnnotationType` with `note/action/quality/keypoint`;
   `AnnotationStatus` at :49) — two divergent systems inside one app. nisaba W3C
   selector model (`core/src/types/annotations.ts`) vs nisaba prisma
   `Annotation` (cuid) vs oshun `NisabaAnnotation` (tenant-scoped opaque id,
   `@@unique([tenantId,contractSchema,sourceRecordId])`). ID schemes: aja
   branded `ann_…`, nisaba `cuid()`, oshun opaque. `AnnotationLayer` defined
   twice with unrelated fields (aja `annotation.ts:641`, nisaba prisma). →
   YSD-2028/2029 must define the shared shape; adapters map, no direct adoption.
2. **Notebook — same name, unrelated entities.** sophia `model Notebook`:935 vs
   oshun `NisabaNotebook`:2111; no shared key. → YSD-2044 must pick Nisaba
   canonical identity and make sophia's a distinct concept or an adapter target.
3. **EvidencePack — four tables, three domains.** sophia `EvidencePack`:971
   (source of truth) vs oshun `VeritasEvidencePack`:1196,
   `MetisAssessmentEvidencePack`:2514, `CrossCuttingEvidencePack`:2885; no
   shared schema import binds them. → Sophia adapter (YSD-0153) must be the
   single evidence authority for the workspace.
4. **EntityType/RelationType — three encodings inside sophia.** zod
   (`schemas/src/entity.ts:24`, `relation.ts:25`) vs TS const
   (`knowledge-graph/src/types.ts:43,67`) vs prisma enums
   (`schema.prisma:109,137`); drift-prone. → workspace consumes exactly one
   through the Sophia adapter.
5. **Citation — five surfaces, duplicate `CitationId` brands.** sophia
   `schemas/ids.ts` brand vs `apps/sophia/search-api/src/types.ts` brand of the
   same name; plus prisma `Citation`/`CanonicalCitation`/`CitationTrail`,
   `citation-graph`, and nisaba CTS citations. → YSD-2001 branded-ID registry
   must dedupe.
6. **SearchQuery — same identifier, disjoint shapes.** aja `types.ts:860`
   (visual/motion modes) vs sophia `search-api/types.ts:59` (document retrieval)
   vs `semantic-search` vocabulary. → Section 13 query contract must be new and
   adapter-mapped.
7. **Rights — four incompatible vocabularies, none sufficient.** live-media HMAC
   playback grants (closest primitive: per-action entitlement decision + error
   codes) vs yemaya 4-value literal vs sophia `RightsStatus` vs audit-platform
   consent/likeness schemas + oshun consent records. → Section 4.1
   RightsGrant/resolver is new; live-media grant flow is the pattern to
   generalize; all four existing vocabularies become adapter inputs, not the
   model.
8. **Audit — canonical contract bypassed by domain tables; two hash chains.**
   `CanonicalPlatformAuditEventSchema` exists (contracts) with an ingest service
   (audit-platform), but sophia `AuditLog`:1331, yemaya `AuditLog`:1118, and
   oshun's three audit models have divergent shapes; hash-chain implemented in
   both `shared/audit-platform/src/hash-chain.ts` and
   `bellona/remote-protocol/src/replay-export.ts`. → YSD-3060 ledger must ingest
   the canonical contract; workspace must not add a fourth local audit table
   shape.
9. **Mastery — two `MasteryLevel` enums plus a band vocabulary; FSRS and SM-2
   card states coexist.** `tutoring/analytics.ts:19` vs
   `adaptive/profiling/types.ts:30`; `MasteryBand` third; `FSRSCard` vs
   `ReviewCard`/`SM2QualityRating`. → YSD-2047/2048 must name which Metis
   vocabulary is contract-visible (and record scheduler version).
10. **Replay — two "version 1" containers.** aphrodite binary `OSHRPLY` vs
    bellona zod `RemoteReplayBundleSchema` (`'1'`), each with its own share
    manifest. → YSD-0158/YSD-2077 study contract must reference, not merge,
    both; session identity lives in the new contract.
11. **Media/Asset — three unrelated metadata models, inconsistent ID typing.**
    aja `Video`/`VideoRendition` vs live-media `MediaPublicationRecord`
    (HLS/DASH keys) vs yemaya `Asset` (`metadata Json`); `WorkspaceId`/`UserId`
    branded in aja but plain cuid in yemaya. → YSD-2023/2025
    SourceEdition/SourceAsset must be the shared identity; existing models map
    through adapters.
12. **Concept graph — three node models, three relation vocabularies.** sophia
    `ConceptNode`/`RelationType` vs nisaba `ConceptMapping`/`InfluenceEdge` vs
    yemaya `CanonNode`/`CanonRelation`. → Section 2.6 typed-relationship
    contracts define workspace semantics; domain graphs remain authoritative for
    their own domains (YSD-0014).
13. **Provenance/C2PA — split across three shared libs plus oshun.**
    `content-signing` (ed25519) vs `content-security/provenance.ts` (C2PA types)
    vs `audit-platform` provenance attachments vs `oshun/c2pa-export`; partial
    re-declaration instead of one owner. → YSD-4120–4127 must pick the C2PA type
    owner and import it everywhere.
