Write a programming function that meets a clear specification.
Implement validate(data, schema) to return True when a JSON-like value satisfies a recursive schema and False otherwise. Schemas may specify types, enums, numeric or length bounds, object properties, required keys, array items, disallowed extra keys, allOf, and anyOf. The input contains only JSON-compatible values and acyclic schema dictionaries.
def validate(data, schema):