Abhilash Raj writes:
How bad do you think would it be for Core to silently drop extra attributes and only use the ones that it needs?
I have no idea what the semantics of that would be. You'd need to come up with rules about semantics of adding attributes that guarantee this works as expected, but if you could, you probably wouldn't need the new attributes in the first place.
I think it would be better for Core to fail with a reason of unknown attribute and allow the client to retry. But if the client isn't prepared to retry, there's no existing guarantee that the client can rollback the transaction. We'll just have to document that clients need to be prepared to rollback if they use attributes not documented for the version they require.
Of course this is mitigated by the fact that in general clients wouldn't be keeping substantial state anyway.