import io.circe.generic.auto._
import io.circe.parser.decode
sealed trait Thing1
case class SubThing1(a: Int) extends Thing1
decode[Thing1]("""{"SubThing1": {"a": 1}}""") // Returns Right(SubThing1(1))
decode[SubThing1]("""{"a": 1}""") // Returns Right(SubThing1(1))