For example: ```py class ModelA(BaseModel): pass class ModelB(BaseModel, extra='allow'): pass TypeAdapter(ModelA | ModelB).validate_python({'x': 1}) #> ModelA() ``` Is the current behavior, but that doesn't seem like the best decision. See https://github.com/pydantic/pydantic-core/pull/1332 and https://github.com/pydantic/pydantic-core/pull/1334 for recent context on union validation decision improvements.