Error model for oximemo-core.
Errors are split by the subsystem that produces them so callers can react precisely (e.g. a watcher treats a CoreError::Frontmatter as “defer parsing” rather than aborting).
CoreError::Frontmatter