See common DSL shapes in the ecosystem: data DSLs, macro DSLs, and hybrid approaches.
The fastest way to learn DSL design is to study existing ones. Clojure has DSLs for HTML, routing, concurrency, configuration, queries, and more.
This section focuses on patterns rather than brand names: data DSLs that are easy to inspect and serialize, macro DSLs that introduce new control structures, and hybrids that keep syntax pleasant while keeping the “real meaning” in data.