Spec → codegen

4H is spec-driven: you maintain a FIX profile (ROE / dictionary), then generate typed Java bindings.

your-spec.xml  →  4h-codegen  →  generated message classes

Why bother?

  • Compile-time field names instead of msg.set(55, …) magic numbers
  • Profile drift is visible in CI when the spec changes
  • Same engine JAR for eval, developer, and production — only the licence file changes

Tooling in the package

Script Role
bin/4h-parse-spec Validate spec XML
bin/4h-codegen Emit Java sources

Tip — Start from ExampleBank or Lucid ROE in examples/; customise tags later.