By: Michael Lynch <git@mtlynch.io>
Split tinybeans parsing into per-file functions with a higher-level assembler ParseJournal, ParseFollowers, and ParseEntry each take an io.Reader and parse a single JSON file independently. Parse(fs.FS) is now a thin assembler that opens each file, calls the per-file parsers, resolves MediaPath, and assembles the Export. Tests call each parser directly with strings.NewReader so the test data is a plain JSON string. TestParse uses a minimal fstest.MapFS focused on MediaPath resolution and assembly correctness rather than re-testing JSON field parsing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>