FS FormScript

Audit

Legal can read the rule

The eligibility rule is buried in three codebases. Support cannot tell which rule was live when an application was decided.

what this buys you

  • The document is the rule
  • Stable diagnostic codes
  • Versioned snapshots
  • Refuse what you cannot implement
Language specification 1.0 · level 3 of 5

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.

forms
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.

Boundary. Reading a rule is not the same as unsupervised authoring. Language version and form revision are different concepts — git versions the file; `version = "1.0"` pins the language.