Defaults & Overrides

The configuration system uses three layers that merge in order of precedence:

  1. Defaults: values that apply across most usages of an application
  2. Configs: values that change or extend the defaults to define a runtime scenario
  3. Overrides: values that define exceptions for a specific run, e.g., via command-line arguments

Higher layers override lower layers, allowing flexible configuration composition.

Each layer can load values from one of these sources:

While they can be used at any layer, the class field defaults work best when added to the defaults layer, while the CLI arguments work best when added to the overrides layer.