Sometimes you don't know exactly the structure of incoming JSON payload.
For that you can use Jawn's JValue:
import org.typelevel.jawn.ast.JValue
case class MyData(
str: String,
dynamic: JValue // this key's data can be anything: null, string, object, sequence...
) derives JsonRW