Dynamically derivate JSON traits and case classes with Circe in Scala

In our scenario to decode and model a Json string (e.g. a configuration file) that may have different data structures for its fields.