The canonical surface-agnostic error reply. Every managed surface has its own
typed reply enum (QueryReply, KvReply, ForkReply, BrowseReply), but a
server that receives a command code it does not handle (a forwarded
AGDX_KV_CAS on a build without compare-and-swap, or any future additive
code) has no one surface to answer in: a query-shaped error reply fails to
decode in a client awaiting a key-value reply, and surfaces as an opaque
transport error instead of a clean classification. This is that fallback. A
server answers an unhandled or unsupported code with a CommandError, and a
client that fails to decode the surface’s typed reply tries CommandError
next, turning the wrong-surface reply into a typed ResultCode.
One logical outcome code spanning query, key-value, fork, and browse. Built
from a surface’s typed error via the From impls below. The typed error
keeps the detail, this is the shared classification.