Allowing Exactly One and All or None
type AllOrNone<T, Keys extends keyof T> = (
| Required<Pick<T, Keys>>
| Partial<Record<Keys, never>>
) &
Split<T>;
type AllOrNone<T, Keys extends keyof T> = (
| Required<Pick<T, Keys>>
| Partial<Record<Keys, never>>
) &
Split<T>;