Skip to content

Add behavior input binding contract - #511

Draft
MaxGhenis wants to merge 12 commits into
mainfrom
feat/be-behavior-input-contract
Draft

Add behavior input binding contract#511
MaxGhenis wants to merge 12 commits into
mainfrom
feat/be-behavior-input-contract

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Fixes #510

Summary

  • Add frozen, JSON-round-trippable behavior input binding models.
  • Resolve Microcosm-owned population columns by stable entity ID while preserving nulls.
  • Document the ownership boundary: PolicyEngine consumes non-legal population flags; Axiom remains documentary-only.

Explicit non-goals

No behavior or take-up formula, no takes_up_* concept, no Simulation integration, no Axiom behavior, no Belgian formula, and no numerical output change.

Verification

  • 17 focused contract tests passed on the final tree.
  • 36 Belgium/labor-supply tests passed with 4 expected source-stack skips, and 73 dataset/model/extra-variable regression tests passed before the issue-only final commits.
  • Ruff format/check passed for all 197 files.
  • Focused mypy and Towncrier checks passed.
  • Architecture Markdown parsing and git diff checks passed.

Full docs remain an environment-only residual check because Quarto cannot write its Sass cache here; the changed Markdown parses cleanly. This remains a draft for frozen-head review and must not be merged yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a stable behavior-input boundary for population data

1 participant