Constraints

Drag&Drop

Both source and target should usually be (or at least able to be) on the screen, when the drag is started. Possible, but unfortunate, are needs to set up the object on the screen before the drag or scrolling while dragging (by dragging on the edge of the window and waiting). => If D&D between two types has {normal} or higher importance and one of them has {many} instances, they should not be in the same container.

If a D&D is ambiguous, a "right-drag" (dragging with the right mouse button) can be used and a context menu pops up after the drop, which lets the user select one of the alternatives. The action/relationship with the highest importance is the default and triggers on a normal "left-drag".

Tree

A tree may contain more than one type of objects, if only one of them (usually the lowest one) has properties. Usually, types are strongly hierarchical then, i.e. type A may contain type B, but type B never contains type A.

A tree can not contain 2 types of objects, if both of them have (different) attributes.