> I don't like all these nulls. I think we need another constructor.

But would we really gain much by having another constructor? The existing constructor is private, while the builder methods already serve as "named constructors" for the different use cases (for bean validation, for parameter validation etc.). Would you add one constructor per such use case? I think this would be quite redundant to the builder methods.