Resolution Order
For a selected flavor without a target, values resolve in this priority order:
- Custom config flavor value — highest priority
- Custom config top-level default value
- Base config flavor value
- Base config top-level default value — lowest priority
When a target is selected through target-specific source generation, values resolve in this priority order:
- Custom config flavor target value
- Custom config flavor value
- Custom config top-level target value
- Custom config top-level default value
- Base config flavor target value
- Base config flavor value
- Base config top-level target value
- Base config top-level default value
If a schema entry is marked required, it must resolve to a non-null value for the
selected flavor and optional target or the build fails.
This deterministic precedence means you always know which layer “wins” for a given key, making debugging straightforward and behavior predictable across builds.