I propose that we can extend Mirrors to operations, and use the most natural DSL of all - plain trait definitions.

Can we derive endpoints from just a trait definition? One of Scala's strengths is domain modelling, and from a data definition, we can derive generic information in a Mirror, e.g. to generate type classes. For operations (such as endpoints) there is less support from metaprogramming, so we often create DSLs to describe them. I propose that we can extend Mirrors to operations, and use the most natural DSL of all - plain trait definitions.
In this talk, we will start with the basics, understanding what build caching is and why it can be a bit tricky to handle in real projects.
Join me for a fun and possibly opinionated talk about the state of Scala and other JVM languages.