Of course you can specify any number of child objects, limited only by available memory.
Normally, the value for a MUIA_Group_Child tag is a direct call to another MUI_NewObject(), children are generated ''on the fly''.
When a group is disposed, all of its children will also get deleted. If you supply a NULL pointer as child, the group object will fail and previously dispose all valid children found in the taglist.
This behaviour makes it possible to generate a complete application 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.