What happened?
Omitting optional fields reduces boilerplate, but also makes it easier to accidentally forget to plumb through a new field across different parts of an application.
What did you want to happen?
Either a flag or a separate builder which generates stages for required & optional fields (& forces passing in explicitly empty collections/optionals)