Floodplain started out being defined using a pretty horrible XML language. It performed and (as far as I know) is performing just fine, but making changes is tricky. As a sabbatical hobby project, I started hunting for a language that could model it well.
I ended up with Kotlin. Kotlin's extension functions allow me to model a tight API while still being extendable. Also, a static typing system allows for better tooling.