TypeScript problem: A subset of fields are optional, but should all be...
TypeScript problem: A subset of fields are optional, but should all be populated if one is populated.
Solution:
1. Put related properties under an optional field
2. Require all fields on the nested object
Now TS assure all fields are provided, or none.
Example:

Another solution: Create a union.
