A given
feature typically has one or more inputs and outputs (which are also referred to as
plugs and
sockets respectively, and collectively known as
connectors). In general, inputs are used to set a feature's state or initiate a feature's behaviour; outputs are used by a feature to emit
signals and data (often in response to the receipt of input signals and data).
Connections are created between pairs of connectors in order to pass signals or data from one feature to others.
Each and every input and output can transmit either signals or data. Precisely what is transmitted is determined by the feature's designer and is immutable (i.e. a signal output will always transmit signals; a data input will only ever accept data of a certain type). An input may be connected to multiple outputs. Likewise, an output may be connected to multiple inputs. Inputs and outputs may be left unconnected. Inputs and outputs belonging to the same feature may be connected to one another. However, there are
overarching rules that determine whether an input and output may be connected.
All connectors have names, which you may change. Within a
feature, all such names must be unique.