F/merge proto

I see that this got removed in favour of a boolean argument. This used to be a boolean and got converted for 1) readability reasons, 2) the fact that there were in fact 3 cases and not just two.

Did one of the cases go away? If it did, it might still make sense to keep the enums to keep the code a bit more readable. (just contrast this with the AckType change in this very patch).