On the Jackson Annotations wiki, explain how to configure Jackson to automatically map a JSON object to the correct Java subclass (e.g., `BookDetails` or `ElectronicsDetails` from a `ProductDetails` base class) based on a 'type' field in the JSON. Provide the necessary annotations and their configurations.
Navigate to 'https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations' Navigate to the 'Type handling' section. Identify the Jackson annotations used for handling polymorphic types based on a type property. Synthesize the configuration details for a base class and its subclasses, assuming 'type' as the discriminator and 'book'/'electronics' as type names for `BookDetails` and `ElectronicsDetails` respectively.
Identify that `@JsonTypeInfo`, `@JsonSubTypes`, and `@JsonTypeName` are the key 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` and `ElectronicsDetails` as sub-types, with `name` attributes 'book' and 'electronics' respectively. Explain that `@JsonTypeName` should be used on `BookDetails` with value 'book' and on `ElectronicsDetails` with value 'electronics'. Provide a clear and coherent explanation of how these annotations collectively enable the desired polymorphic deserialization.