Compiled 2026-07-18 at working-tree commit 33956eb359. For each source family
YSD-0108 names: the concrete formats, what the repository can really do today
(with evidence), and what the workspace must add. Status vocabulary follows the
proposal §5.1 legend. ffmpeg/ffprobe binaries are present on the dev box
(/usr/bin/ffmpeg, /usr/bin/ffprobe).
| # | Family | Formats | Existing capability | Status | Serves |
|---|---|---|---|---|---|
| 1 | Film/video | mp4, mov, mkv, webm, avi, mxf, ts; H.264, H.265, VP8/9, AV1, ProRes, DNxHD | Real ffmpeg execution: libs/shared/encoding (imf-delivery, timeline-assembly), libs/shared/live-media (neith-ffmpeg-transcoder, ffmpeg-hls-dash-packager); aja type vocabulary (VideoCodec, ContainerFormat, ColorSpace, PixelFormat); aja probe/scene-detection is simulated |
implemented-primitive (decode/transcode) + fixture-backed (analysis) | YSD-5001, YSD-1030 walking skeleton |
| 2 | Audio | aac, mp3, opus, vorbis, pcm, ac3; stems/mixes | libs/shared/encoding/src/audio-analysis.ts (real DSP), euterpe analysis libraries (no service/persistence) |
implemented-primitive (analysis code) / partial (no anchored outputs) | YSD-5001, Section 9 sound lens |
| 3 | Subtitles | SRT, WebVTT | References in aja metadata-extraction.ts/types.ts, sophia accessibility-manager.ts, euterpe lyric-video |
partial (parsing scattered, no shared subtitle-track contract) | YSD-2027 MediaTrack, YSD-2072 line/word anchors |
| 4 | Transcripts | timestamped transcript envelopes; ASR outputs | libs/sophia/ingestion/src/adapters/video-transcript.ts (VideoTranscriptAdapter, VideoTranscriber seam — real anchor pattern, no bundled ASR) |
implemented-primitive (anchoring) / seam (ASR) | YSD-2029 anchors, YSD-5xxx transcript ingest |
| 5 | Images/stills | PNG, JPEG, WebP (web-standard set) | yemaya Asset (AssetType.IMAGE, checksum/thumbnail/preview), isis generation outputs, oshun asset-preview-pipeline Studio surface |
partial (asset handling; no region-anchor study support) | YSD-2079 still-image anchors, YSD-22009 region pinning |
| 6 | Documents | text/markdown strong; PDF absent | nisaba document/passage/edition stack (Prisma Passage, CanonicalReference, W3C selectors) is production-grade for text; no PDF parser found in nisaba/sophia |
implemented-primitive (text) / missing (PDF, page-image) | YSD-2078 document anchors |
| 7 | Storyboards | image sequences + panel/page structure | No dedicated support; composes from families 5 + 6 | missing (as a first-class kind) | YSD-2078 panel anchors |
| 8 | Telemetry | JSON event streams; versioned schemas | apps/v2/telemetry-schema-migrations (additive/breaking compat), player-behavior-heatmaps, telemetry-session-reconstruction, telemetry-privacy-compliance; bellona telemetry-hooks |
product-specific (no cross-game contract) | YSD-5008, Section 12 Tier B/C |
| 9 | Creator-owned 3D assets | glTF, USD, FBX, OBJ, Alembic | libs/neith/assets/crates/neith-asset-import (GltfImporter, UsdImporter, FbxImporter, ObjImporter, AlembicImporter), neith-engine-interchange (materials/skeleton/LOD/texture translation), on-box OpenUSD pxr runtime (venv, OSHUN_USD_PYTHON); phase-170 fail-loud Alembic/.ztl seams |
implemented-primitive (Rust crates; no workspace adapter/sandbox) | YSD-2080 anchors, YSD-0165 adapter, Section 9.13 |
| 10 | Level scenes | engine scenes/levels (.uasset via bridges, Blender/Godot/Unity scenes), USD stages | libs/neith/scene/crates (neith-scene-graph, neith-world, neith-level-stream), maya engine-core crates, bellona bridge-{blender,godot,unity,unreal} apps, on-box headless .uasset authoring (2026-06-18 record) |
implemented-primitive (engine side) / missing (study exposure) | YSD-2081 anchors, YSD-0158 bridge reuse |
| 11 | Commentary | commentary audio tracks, director/creator commentary | No dedicated kind; families 1/2/4 primitives apply; creator-statement epistemic identity does not exist yet | missing (as epistemic kind) | YSD-5009, YSD-2107 creator statement |
| 12 | Paratext | interviews, making-ofs, talks, art books, patch notes, dev diaries | nisaba text stack applies; no ingestion or creator-statement typing | missing (as first-class ingest) | YSD-5009, Section 11 |
Cross-cutting requirements the matrix implies#
- Parser sandboxing (YSD-4093/4095): families 1–3, 5–7, 9, 10 all parse untrusted bytes; ffmpeg/image/3D parsers must run behind the quarantine + resource-limit envelope before any workspace exposure. The neith Rust importers are memory-safe but still need decompression/complexity limits (mesh complexity, archive depth).
- Simulated-path quarantine (YSD-1007): aja probe/scene-detection stays
unsupportedbehind the adapter until rewired to the realshared/encodingffmpeg primitives — the shared libs, not aja's simulated code, are the decode foundation. - Provider/streaming sources are not a format family: provider content is link-only playback (YSD-4009, YSD-5004) — deliberately absent from this matrix because no bytes are parsed.
- Frame-rate identity (YSD-2003): family 1 support must carry rational frame rates and drop-frame timecode; the aja types lack both (integer fps assumptions) — flagged for the Section 2 contracts.
- Capability discovery (YSD-2007): every family maps to explicit supported/unsupported/unavailable responses per source class; "in the repo somewhere" is not "supported" until wired through an adapter with conformance tests (YSD-0163).