* so in this proposal, the compatibility works out like this: - on the input side, everything supports `first` (resets processing) and `last` + `end` (ends packet with/without data) - on the output side, everything supports `first` (typically by forwarding from the input, but sometimes generated internally) and generates `last` xor `end`; nothing supports _only_ `first` everything can be connected to everything else without any modes or gaskets, at the small price of needing to implement both `last` and `end` on the input side