A Flow Port is a port that specifies the input and output items that can flow between a Block and its environment. Flow Ports are interactions points through which data, material, or energy “can” enter or leave the owning Block. The specification of what can flow is achieved by typing the Flow Port with a specification of things that flow. This can include typing an atomic Flow Port with a single type (Block, Value Type, or Signal) representing the items that flow in or out, or typing a non-atomic Flow Port with a Flow Specification which lists multiple items that can flow. In general, Flow Ports are intended to be used for asynchronous, broadcast, or send-and-forget interactions. Note that only non-atomic Flow Ports can be conjugated. Once conjugated, all the directions of the typing Flow Specification's items are negated.