The main building block of an action graph. Represents either an action or expression. An action node has input and output signals, and will act only when receiving a signal. Expression nodes have only input and output values, and will be evaluated lazily when one of its outputs is requested.