@fellshard There is a big difference between Kotlin’s approach to DSL and macros (hygienic or not) the way Lisp supports them: macros let you completely change the syntax of a language, including adding keywords to it. There is a clean boundary to the kind of DSL that can be created with Kotlin (basically, it will never get more complicated than a JSON file)