export type Subset = { [attr in keyof K]?: K[attr] extends object ? Subset : K[attr]; };