type RequireAtLeastOne = { [K in keyof T]-?: Required> & Partial>> }[keyof T];