Jackson Scala JSON Deserialización a clases de casos

Tengo un JSON que tiene la siguiente forma:

{
"inventory": [
           {
        "productType": "someProduct1",
        "details": {
            "productId": "Some_id",
            "description": "some description"
        }
        },
 {
        "productType": "someProduct2",
        "details": {
            "productId": "Some_id",
            "description":{"someKey":"somevalue"}
        }
    }
]
}

Las clases de casos que deseo que el json anterior deserialice se parecen a las siguientes:

case class Inventory(products:List[Product])
case class Product(productType:String,details:ProductDetails)
abstract class ProductDetails
case class ProductDetailsSimple(productId:String,description:String) extends ProductDetails
case class ProductDetailsComplex(productId:String,description:Map[String,String]) extends ProductDetails

estoy usandomódulo jackson-scala para deserializar la cadena JSON anterior de la siguiente manera:

 val mapper = new ObjectMapper() with ScalaObjectMapper
 mapper.registerModule(DefaultScalaModule)
 mapper.readValue(jsonBody, classOf[Inventory])

El error que recibo es el siguiente: "Token inesperado (END_OBJECT), FIELD_NAME esperado: falta la propiedad '@details' que debe contener el ID de tipo (para la clase ProductDetails) \ n en [Source: java.io.StringReader@12dfbabd; line : 9, columna: 5] "

He pasado porDocumentación de jackson sobre deserialización polimórfica. Y he intentado combinaciones como las mencionadas pero sin suerte. Me gustaría entender lo que estoy haciendo mal aquí, que necesita corrección con respecto a la deserialización utilizando el módulo jackson.

Respuestas a la pregunta(1)

Su respuesta a la pregunta