Disciplines · Proposals

Existing Schema Inventory and Identity Conflicts (YSD-0104)

generators).

14sections10 minread

On this page

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.tsaja. 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.tsshared/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.sqlyemaya/assets. Drizzle yemaya_lfs_* quota tables (Git-LFS media storage).
  • libs/euterpe/distribution/src/metadata/index.ts, libs/euterpe/lyria/src/prompting-assets/types.tseuterpe (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.tsnisaba. 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:2017oshun. model NisabaAnnotationv1_nisaba_annotation contract projection (target Json, citationIds, linkedNotebookIds, contractSchema/contractVersion/payloadHash, tombstones).

3. Notebook#

  • libs/nisaba/workspace/src/research-environment.tsnisaba. 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.prismanisaba. 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:935sophia. model Notebook (research notebook backing EvidencePacks).
  • libs/oshun/persistence/prisma/schema.prisma:2111oshun. model NisabaNotebook (v1_nisaba_notebook: annotationIds, citationIds, conceptNodeIds, passageIds, items Json), plus NisabaStudyPlan.

4. Evidence#

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

5. Rights#

  • libs/shared/live-media/src/playback-grant.tsshared/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:36yemaya. Inline literal 'owned'|'licensed'|'fair-use-reference'| 'internal' (not a shared schema).
  • libs/sophia/database/prisma/schema.prisma:72sophia. enum RightsStatus on documents (separate vocabulary).
  • libs/shared/audit-platform/src/rights-report.ts, model-license-review.ts, voice-likeness-consent.tsshared/audit-platform (rights reporting / license review / likeness consent).
  • libs/oshun/persistence/prisma/schema.prismaoshun. CrossCuttingConsentRecord (2791), OriPresenceConsentEvent (134); plus libs/oshun/memory-iris/src/consent-ledger.ts, data-rights.ts.
  • 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.tssophia. A different SearchQuery, SearchFilters, SearchOptions, SearchResponse, HybridSearchConfig, BM25Config, RerankingConfig; branded QueryId, ResultId, ChunkId, CitationId.
  • libs/sophia/semantic-search/src/types.tssophia. SearchType, SimilarityMetric, RankingFactor, FilterOperator, CollectionType, SearchFilter(s), RankingWeights; branded SearchResultId, SearchSessionId.

7. Graph#

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

8. Learning#

  • libs/metis/core/src/types/types.tsmetis. 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.tsFSRSCard, FSRSConfig, FSRSState, class FSRS. path/bkt.tsBKTParams, TraceResult, BayesianKnowledgeTracing. path/spaced-repetition.tsReviewResult, SchedulerStats, SpacedRepetitionScheduler. path/types.tsReviewCard, MasteryGate, MasteryMilestone, LearningPath, SM2QualityRating, CardState. path/mastery-progression.tsMasteryProgressionConfig, 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.tsmetis (drizzle-style schema module); metis persistence materialized in oshun (MetisLessonAssetBundle:2333, MetisAssessmentEvidencePack:2514).

9. Replay#

  • libs/aphrodite/game-runtime/src/replay/replay-system.tsaphrodite. 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.tsbellona. Zod RemoteReplayBundleSchema, RemoteReplayBundleManifestSchema, RemoteReplayTimelineEntrySchema, screenshot/keyframe/stream-segment/ redaction/command/approval schemas; REMOTE_REPLAY_BUNDLE_VERSION='1'.
  • libs/bellona/remote-protocol/src/replay-export.tsbellona. RemoteReplayExport, RemoteReplayComplianceSummarySchema, RemoteAuditChainExport, ReimportedAuditChainVerification; formats canonical-json|jsonl.

10. Telemetry#

  • apps/v2/telemetry-schema-migrations/src/telemetry-schema-migrations.tsv2. TelemetryEventSchemaDefinition, TelemetrySchemaVersion, TelemetrySchemaMigration(Plan), TelemetrySchemaCompatibility='additive'|'breaking', TelemetrySchemaStability.
  • apps/v2/player-behavior-heatmaps/src/player-behavior-heatmaps.tsv2. 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.tsbellona (DCC/agent telemetry).

11. Signing#

  • libs/shared/content-signing/src/index.tsshared/content-signing. ED25519_ALGORITHM, sha256Hex, generateEd25519SigningKeyPair, ed25519Sign/Verify(Base64), ClaimSigner/ClaimVerifier, Ed25519ClaimSigner/Ed25519ClaimVerifier.
  • libs/shared/content-security/src/provenance.tsshared/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:160contracts (platform-canonical). CanonicalPlatformAuditEventSchema, CanonicalAuditActorSchema, CanonicalAuditTargetSchema, CanonicalAuditEvidenceSchema, CanonicalAuditOutcomeSchema, CanonicalAuditSeveritySchema (info|warning|error|critical), IngestCanonicalAuditEventRequestSchema.
  • libs/shared/audit-platform/src/hash-chain.ts + index.tsshared/audit-platform. AuditChainEntry, AuditChainVerificationResult, HashChainedAuditEventStore, hashEvent(), chainHashStep(), InMemoryCanonicalAuditEventStore, AuditEventIngestService.
  • libs/sophia/database/prisma/schema.prisma:1331sophia. model AuditLog (action/entityType/entityId/previousState/newState/ userId/ipAddress).
  • libs/yemaya/database/prisma/schema.prisma:1118yemaya. A separate model AuditLog.
  • libs/oshun/persistence/prisma/schema.prismaoshun. 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.tsisis (generated Prisma materialization of the canonical event).
  • libs/bellona/remote-protocol/src/replay-export.tsRemoteAuditChainExport (a second hash-chain implementation, replay-tied).

Migration / schema directories#

  • nisabalibs/nisaba/database/prisma/schema.prisma (+migrations/20260528000000_nisaba_initial/): Manuscript, CollationProject, VariantUnit, CriticalEdition, Annotation, AnnotationLayer, ConceptMapping, MotifAttestation, InfluenceEdge, CanonicalReference, Passage, PersonalLibraryItem, Bookmark.
  • sophialibs/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.
  • yemayalibs/yemaya/database/prisma/schema.prisma (+migrations): User, Organization, Project, Asset, AssetTag, Collection, Comment, Subscription, Invoice, Plugin, AuditLog; plus drizzle libs/yemaya/assets/drizzle/.
  • oshunlibs/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.