Of course you can specify any number of child objects, limited only by available memory.
Normally, the value for a MUIA_Family_Child tag is a direct call to another MUI_NewObject(), children are generated ''on the fly''.
When a family is disposed, all of its children will also get deleted. If you supply a NULL pointer as child, the family object will fail and previously dispose all valid children found in the taglist.
This behaviour makes it possible to generate a complete family within one single (but long) MUI_NewObject() call. Error checking is not necessary since every error, even if it occurs in a very deep nesting level, will cause the complete call to fail without leaving back any previously created object.