A Group is collection of parts that snap together to make a single unit, such as:

A group's 'parts' are rendered together and share the group's environment properties:

Properties (see Region)

boundary
TBD - the bounding box, sphere or cylinder for clipping and other purposes
orientation
A Quat specifying the rotation used to orient the shape in its parent's coordinate system. If not specified, no rotation takes place.
origin
The location of this shape's 0,0,0 position in the shape's parent's coordinate system. This can be used to specify where to render this shape within its parent group's space. If not specified, +Xyz(0,0,0) is assumed.
parts
Ordered list of all the group's positioned parts (groups, shapes, etc.).
render?
The method that is performed before rendering the group. The method should return 'false' if the group is not to be rendered. This method will have the render context as 'self', enabling the group to define rendering attributes that will apply to all its parts.
scale
An Xyz vector specifying how much to re-size the shape's vertices when rendering in the parent group, as defined by the 'view' method. The default is no scaling: +Xyz(1.,1.,1.)