Media-aware extraction: reads a file and returns it as text, an image, audio samples or video frames, discriminated by the MIME type Tika sniffs from its content.
Kept separate from DocumentExtractor on purpose. Document loading wants text and metadata from anything text-bearing; multimodal embedding wants the decoded media itself. The two share only the initial Tika sniff, and the audio and video cases overlap llm4s-speech and llm4s-image rather than RAG, so this may not stay here.
The sniff stays here because it needs Tika; the vocabulary it resolves to (org.llm4s.media.MediaCategory) lives in llm4s-media, so the modules that would consume audio and video branches can name the same categories without inheriting Tika.