Make it a lot easier to construct composite objects (like composition) in pure java.

There's a few types that require non-null non-empty List arguments in their FullConstructor.
These types are then possible parent arguments to other types. It what is impossible (without
dirty reflection) to create a valid tree of objects (to save in one go, for example) using
these constraints, so loosen them up a little bit.