Pkl
A configuration as code language with rich validation and tooling
...Its goal is to let you write configuration logic (modules, imports, conditions, defaults) while still producing static outputs suitable for tools that expect JSON, YAML, or other formats. Configurations in Pkl are type-safe and support validation constraints (e.g. bounds, relations) so many errors can be caught before deployment. The language is embeddable, meaning it can run inside applications (Java, Swift, Go, etc.) to load configuration dynamically with the same safety guarantees. There’s also code generation support: writing Pkl modules can generate matching classes or data structures in target languages (Swift, Go, Java, Kotlin) so runtime config and statically typed code stay in sync.