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.