legal — every check passed; the commit may be applied.
violation — a definite, terminal rejection. The calling seam decides its
own disposition for this (throw, rejected, or drop the candidate edge)
— this type stays seam-agnostic.
undecidable — authorization could not be evaluated against this
candidate parent (most commonly: a changed leaf could not be attributed
to any Add, Update proposal, or the committer, because the caller had no
proposal list or committer index to classify it with). Per
refs/marmot/foundation/errors.md (lines 63-68), a Commit whose
authorization cannot be evaluated against a candidate parent MUST map to
the seam's own deferral idiom — never to a terminal rejection. detail
is a pubkey-free diagnostic string (D-06).
A definite violation always outranks undecidable: every producer of
this union checks every changed leaf before reporting undecidable, so a
commit that is provably illegal is rejected rather than pooled, even when
it also carries an unattributable leaf.
The tri-state result of validateCommitAccountIdentityProofs and validateCommitLegality (Phase 9, D-03): a commit's legality against a candidate parent is not always a yes/no answer.
legal— every check passed; the commit may be applied.violation— a definite, terminal rejection. The calling seam decides its own disposition for this (throw,rejected, or drop the candidate edge) — this type stays seam-agnostic.undecidable— authorization could not be evaluated against this candidate parent (most commonly: a changed leaf could not be attributed to any Add, Update proposal, or the committer, because the caller had no proposal list or committer index to classify it with). Perrefs/marmot/foundation/errors.md(lines 63-68), a Commit whose authorization cannot be evaluated against a candidate parent MUST map to the seam's own deferral idiom — never to a terminal rejection.detailis a pubkey-free diagnostic string (D-06).A definite
violationalways outranksundecidable: every producer of this union checks every changed leaf before reportingundecidable, so a commit that is provably illegal is rejected rather than pooled, even when it also carries an unattributable leaf.