You don't need to spell out the whole case class when you're doing transformations.
If your data model is changing quite a lot except for a few key parts that your application is interested in - it shouldn't even be aware of the other stuff.
Here we use play-json format composition to read the whole JsObject into one field of the case class - and write it back out.
This way, you can change the schema mercilessly without tightly coupling your application to the schema.
Same approach works in Circe JSON too. Now, if we could just add an annotation to a field where we want to dump JSON data into, that's be eery very cool.
So Scala can act like a dynamic language for you, you don't have to compromise and go all-static and type everything out.