`ujson.Value` is in chapter 8.1.1. of your excellent Hands-On Scala book I've bought.
Turns out for arbitrary JSON you can do this:
val rawData = read[ujson.Value](JSONstring)
val todoData = read[Seq[Map[String,ujson.Value]]](todoJSON)