Thus far, configurations are stored in structures identical to the configuration files. A negative impact thereof is that all configuration properties are nullable and nullability of their values has to be dealt with throughout the application logic.
It is desirable to split the configurations into raw DTOs (with nullable properties and overriding facilities) for reading (or, possibly, writing as well) and into target configuration structures (with non-nullable properties validated during mapping from DTOs).
Thus far, configurations are stored in structures identical to the configuration files. A negative impact thereof is that all configuration properties are nullable and nullability of their values has to be dealt with throughout the application logic.
It is desirable to split the configurations into raw DTOs (with nullable properties and overriding facilities) for reading (or, possibly, writing as well) and into target configuration structures (with non-nullable properties validated during mapping from DTOs).