Source blocks can generate various aspects such as color, rotation (pan/tilt), gobos, position, pure numerical values, stack assignments and others. You can use source blocks of various aspect types together.
The aspects merge into a single stream that then continues further through the stack eventually leading into a fixture or a director.
The receiving object then takes only the aspects it understands and adjusts its behavior accordingly. This means that Stacks are interchageable between for instance different fixture models.