Building Blocks
Cohesive. Configuration
Cohesive.Configuration provides typed configuration semantics for profiles, parameters, dependency selection, environment overlays, validation, and runtime composition.
Configuration is often the hidden control plane of a system. This block makes it explicit, typed, validated, and reusable across APIs, workers, CLIs, tests, infrastructure, and process runtimes.
Typed Configuration
Cohesive.Configuration describes configuration parameters as semantic metadata rather than loose strings. Parameters can carry names, CLI aliases, descriptions, defaults, required-value rules, allowed values, units, nesting, and parser behavior.
That metadata can be consumed by application hosts, CLI commands, tests, generated docs, and infrastructure definitions.
Profiles and Overlays
Profiles let a system choose different settings for local development, tests, staging, production, cloud execution, training jobs, or tenant-specific deployments.
Overlays can combine files, environment variables, command-line inputs, secrets, and generated infrastructure outputs into one typed model.
Dependency Selection
Configuration can select which adapters and services are active: in-memory repositories for tests, Cosmos for production state, search-backed read models, local model inference, cloud training, or hosted process execution.
The goal is to make runtime composition deliberate instead of scattering environment checks through startup code.
Validation
Configuration values should fail early when they are missing, malformed, out of range, or incompatible with a selected profile. Cohesive.Configuration keeps validation attached to the parameter model so every entrypoint interprets values the same way.
Role in Cohesive
Configuration connects authoring, hosting, CLI invocation, infrastructure binding, process execution, and adapter selection. It gives the rest of Cohesive a common way to describe how a semantic system becomes a running system.
