A part may have any number of interfaces. Any two given interfaces can potentially be connected ("mated") to one another with some amount of compatibility. Not all interfaces are able to mate with all other interfaces. Mate success, or compatibility, is dependent on shape, geometry, tolerances, and interface specifications. Any two given parts can potentially be connected ("mated") with another part in a number of different ways. When two interfaces are mated, their nodes are connected in the assembly graph. A pipe that will be outputting 3kpsi should not be compatible with a pipe rated for taking 15psi (unless explicitly forced). An assembly is a graph with parts and interfaces as nodes and mates as edges. Minimum spanning tree is a good way of traversing the assembly. An assembly can be a part. (A subgraph can be represented by a single node surrounded by external interface nodes)