OptionalcodeStable code from MJCLIErrorCodes. Optional only so existing call sites
keep compiling — new code should always set it, because without one an agent
has nothing to branch on but a regex over message.
OptionalcontextEntity name, file path, phase — whatever is relevant.
OptionalsuggestionConcrete remediation the caller can act on unaided — name the flag, the file,
the command to run. "Invalid configuration" is not a suggestion;
"Run mj sync init in this directory first." is.
A single failure, collected (not interleaved) so an agent can read them as a list.