On the Jackson Annotations wiki, explain how to configure Jackson to deserialize JSON into the correct Java subclass (e.g., BookDetails or ElectronicsDetails from a ProductDetails base class) when the JSON includes a 'type' field. Detail the necessary annotations and their configurations for this polymorphic mapping.
Navigate to 'https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations' Navigate to the 'Type handling' section using the table of contents. Identify the Jackson annotations specifically used for handling polymorphic types based on a type property. Synthesize the configuration details for a base class (ProductDetails) and its subclasses (BookDetails, ElectronicsDetails), assuming 'type' as the discriminator property and 'book'/'electronics' as the type names for BookDetails and ElectronicsDetails respectively.
Identify that `@JsonTypeInfo`, `@JsonSubTypes`, and `@JsonTypeName` are the primary annotations for this scenario. Explain that `@JsonTypeInfo` on the base class should be configured with `use = JsonTypeInfo.Id.NAME`, `include = JsonTypeInfo.As.PROPERTY`, and `property = "type"`. Explain that `@JsonSubTypes` on the base class should list `BookDetails.class` with `name = "book"` and `ElectronicsDetails.class` with `name = "electronics"`. Explain that `@JsonTypeName("book")` should be used on the `BookDetails` class and `@JsonTypeName("electronics")` on the `ElectronicsDetails` class. Provide a clear explanation of how these annotations work together to achieve polymorphic deserialization based on the 'type' field.