Parsing
Parsing turns a configuration file into a spec type.
Validation
Parsing, which precedes validation, ensures the spec is structurally correct.
Lowering
Once a spec is validated, lowering converts it into a config type.
Diagnostics
When parsing or validation finds a problem, it does not throw.
Layering
When an application reads its configuration, the values may come from more than one place.
Templates
A spec type already encodes the whole configuration surface.
Representations
Sometimes you need to see what your service loaded, which may differ from the file on disk.
The Schema IR
Sometimes you need the type of a spec rather than a value of it.
Format Limitations
Sometimes you parse a configuration in one format and emit it in another, or you generate a template and wonder whether the write can fail.
The language server core
confval rejects an unknown field at process startup, so a mistake in a configuration written by hand surfaces as a hard failure rather than a silently ignored key.