- Update getContentCache() to use NotificationContentMapper.cacheToDTO()
- Update contentCacheToJson() helper to use DTO mapper
- All content cache methods now return Contract v1 format:
- fetchTime (not fetchedAt)
- mediaUrl (not url)
- Structured fields (title, body, metadata) instead of payload string
BREAKING CHANGE: API responses now use Contract v1 field names.
See docs/CONTRACT_V1_BREAKING_CHANGES.md for migration guide.