ConfigLoader follows the repository structure required by AGENTS.md.
Contains stable types:
- contracts
- enums
- value objects
- exceptions
This layer does not depend on lib/ or src/.
Contains reusable core logic:
- root resolution
- file resolution
- parsers
- merge logic
- interpolation
- environment access
This layer may depend on include/.
Contains the public runtime entry point:
ConfigLoader
This layer wires the core components and exposes the public loading methods.
Contains PHPUnit coverage for unit and integration behavior. Production code does not depend on this layer.
include <- lib <- src
Rules:
include/is dependency-freelib/usesinclude/src/usesinclude/andlib/- production code never depends on
tests/