Promise. The document is the rule — it diffs in review. Diagnostics carry stable codes (E-VAL-…, E-TYPE-…); messages can be translated. A snapshot records the document version and the profile; a runtime must reject a snapshot it cannot implement rather than restore it halfway.
The file is the evidence
Reviewers read the same document the engine runs. The rule is visible in the diff, not buried in three codebases.
Stable codes
Diagnostics carry codes like E-VAL-01. Messages can be translated; the code never moves.
Refuse, do not guess
A snapshot from an unimplemented version is rejected outright rather than restored halfway.
form loan version = "1.0" {
field annual_income {
type = number
validate { min = 0 }
}
group guarantor {
field guarantor_name {
type = string
when = annual_income > 10000
required = true
}
}
output {
annual_income: number
guarantor.guarantor_name: string
}
}
Reviewers read the same file the engine runs. A rejected snapshot names the version it refused.