Alexey Melnikov writes:
Creating new data types is bad, as it complicates protocol parsers.If you remember, we had the same argument in Lemonade about URIs and at the end decided not to define a new data type.
I'm not creating one. Message-IDs exist and the point is to use them. That are three possibilities:
1. Send "<" id-left "@" id-right ">" on the wire. As I put into the current draft.
2. Send an IMAP atom on the wire and say "when dequoted, MUST be < id-left @ id-right >". (As I recall, some Lemonade document does something like that.)
3. Send an IMAP atom on the wire and skip the rules about what it contains.I dislike option 3 since the whole point is to deal with message-ids, so option 3 doesn't fit with the goal. As a general principle I think the syntax should correspond to the goal it supposedly expresses.
I dislike option 2 since I, as a parser, still have to check "<" id-left "@" id-right ">", it's just that I have to check atom syntax first and then parse the output of that. Option 2 complies with RFC 1925 point 6a, but doesn't any extra value. (The matter would be different if something wanted the argument to be an atom.)
That leaves option 1 as my favoured option. Your? Arnt