UCG is an expression oriented functional language with immutability, copy-on-write semantics and forward type inference. Everything in UCG is an expression except for a few statements that introduce named bindings or generate an output.
UCG is purpose built for constructing configurations. Anything that is not useful for that is excluded. All ucg output targets one of the compilation conversion targets.
UCG can import supported configuration formats and transform them before outputting them into one of the compilation conversion targets. UCG also has built in support test assertions in your configuration generation and transformation logic.
Among the possibilities this opens up are: