A trigger is the starting point for a sequential script, a step is one piece of the sequence. The primary difference is that triggers lack flaps to snap to, as they are always the first block in a sequence, while steps always follow other blocks. A block may contain other blocks: step blocks nested in either .next or .contained, and value blocks nested in .socket. When value blocks are nested, they replace the input element of the socket.
[A block may have zero or more input sockets]
[optional text]
[optional text]
Value blocks return values, are typed, and can be nested.
[A block may have zero or more input sockets]
[optional text]
[optional text]