- Improve PdfFontMetrics: use canonical path for cache key, validate
font file existence, use absolute paths for BaseFont.createFont
- Add font file path resolution in SongbookPipeline (relative to
project directory)
- Add font file existence validation in Validator.validateConfig
- Add end-to-end tests: custom font loading, umlaut rendering,
cache deduplication, missing file error
- Document custom font file usage in example songbook.yaml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>