If you’re looking for a configuration language, I’d really recommend PKL now. Since the last time I read the language spec, they’ve added mechanisms for mutating existing things, which was the one advantage UCL had: ideally users should never modify a configuration file that you ship because then merging changes is hard, they should provide a new file that modifies settings. UCL supported that from the start, PKL does as well and has a much richer (and extensible) data model.
There are native implementations for some languages and a separate daemon that can parse the files (and evaluate the language) and give you structured data for others, which is a better model for configuration parsing generally anyway.