$useController<U = T>(props?: Omit<UseControllerProps, 'name' | 'control'>): UseControllerReturn<...>
UseControllerProps needs to be generic or there will be a mismatch on rules.validate, which actually uses T.
Likewise, rules.value (discouraged but exists) and defaultValue resolve to any instead of T.