What about
def validate_option_b_input(value: Optional[list[float]]):
if value is not None and len(value) != 2:
raise ValueError("Length must be 2")
return value
class OptionB(BaseModel):
min: Optional[float] = None
max: Optional[float] = None
value: Annotated[
Optional[list[float]],
AfterValidator(some_eventual_validation),
AfterValidator(validate_option_b_input),
Field(validate_default=True),
] = None