For a brief period it was possible to create these node interface sockets that were both inputs and outputs. Nowadays we're implementing the row-alignment in a different way, and we expect the input and output status to be mutually exclusive. This PR adds versioning to properly split such sockets. The implementation relies on the unique identifier space being separate for the input and output sockets. Pull Request: https://projects.blender.org/blender/blender/pulls/144807