[Breaking] Use ProtocolOperationReturn instead of
ProtocolOperationResult
Allows storing more data in the returned value, also allows modifying
the object in a non-reference way