Implement a helper function validate(object, required_style) that checks whether a possibly nested object matches a provided schema. The object may contain nested sub-objects (e.g., under keys like "OBJ") and arbitrary key–value pairs; required_style is a dictionary mapping field names to required primitive types (e.g., string, integer) or to nested schemas. The function should return a boolean and, if invalid, an explanation including the offending path and reason (missing key, unexpected type). Define how to treat extra fields (ignore or flag), nulls, and arrays. Demonstrate your approach on an example object containing fields like name, age, school, and nested attributes (e.g., color, height) and show how required_style would be expressed.