Add requirement for server to be able to generate a list of changes since the last time the client checked. This would support much more efficient use of bandwidth, and hopefully would not require a huge amount of work on the part of the server.
How detailed should the requirement be? Would it be useful to lay out the information to be stored, or should I just specify that servers must be capable (thus encouraging inventiveness among authors)?
Thoughts regarding implementation/specification:
Command name: GETLOG timestamp offset
Every message state change (attributes, new message, message expunged) will be recorded with a timestamp and change ID in a log file.
Every log file entry will have an associated ID token (unique to that log entry) which could be as simple as {timestamp, offset}. Offset could be measured in lines if we're using text files (my preference for now).
Should the log files be specific to folders? Or be specific to mail store? I'm leaning toward specific to mail store, with the folder listed in every log entry.
Mention recommended default policy of one week worth of changes, but ultimately leave it up to the servers.
Clients must be able to deal gracefully with a response indicating the log entry they referenced wasn't found... at that point they have to rebuild their local state.
Thanks to Nicolas Williams for the ideas.