DataContracts are generated as partial classes without constructors. You can create a new partial class for each of the data contracts, and in its constructor initialize the properties to new objects or collections:
public partial class BeingItself
{
public BeingItself()
{
this.PossibleUniverses = new List<Universe>();
}
}
Still then you can't blindly 'dot into' the collection, as it's empty and PossibleUniverses[0]
won't exist. There you'll still have to perform checks.