ResolveProperties

type
type ResolveProperties = IsAny<TProperties> extends true
  ? unknown
  : {
      [K in keyof TProperties]: WithOptional<
        ResolveOptionType<TProperties[K]>,
        TProperties[K]
      >;
    };

Resolve all properties of an object option to their types.
Each property becomes its resolved type, wrapped with optional handling.

Special case: when TProperties is any (from OptionConfig<any, any, any, any>),
we return unknown to avoid creating an index signature that would hide
the actual properties inferred from the value.