play.json.extra
fails compilation if T is not a case class meaning this can be used as an implicit to check that a type is a case class