1. The message is NOT optional. If the user says 'git stash store
b8bb3fe9', what "default message" can we possibly put in? There is
absolutely no context: no branch name, nothing. So, the best we can
do is "generic WIP". What is the point of putting in such a useless
message?
2. We have already determined that the command is NOT for end user
interactive use. So, why do we need a default error message at all?
The last statement is an update-ref, and you can infer whether it
succeeded or failed from the exit status.
3. Why are we designing a command-line interface? git stash store
"$stash_sha1" "$message" is sufficient for scripts, and there is
absolutely no point in parsing '-m', '-e', or any such thing.