The wide data-flow view — provider exchange and contract import as two flows, with VDMS expanded. The module-dependency diff lives in the goal overview; the stale copy that used to sit here was removed 2026-09-19.
Same architecture, laid out as two flows instead of two columns. Use this one when the question is "what happens to a request" rather than "which module depends on which". The VDMS half is expanded, because it is where the next piece of work lands.
codexa.contract.rule.maptara_codexa_vdms/models/vdms_vertrag.py creates codexa.contract, codexa.contract.version, codexa.contract.item and codexa.catalogue.item; vdms_ik.py creates codexa.provider.site. A grep for price_rule / contract.rule across that module returns nothing.
So a contract imported from RHVital lands structurally complete and commercially empty — the price rules that make it usable are still created by hand in the Price Rules menu. If the goal is "VDMS creates contracts and price rules", that is net-new work in the glue module, not a driver concern.
The open question is not technical, it is mapping: which rule shape does RHVital data produce? Contract-scope rules, product-family rules, or exact-product rules — and what decides specificity when an import collides with a hand-made rule. That needs answering before any code, and it is the same class of question as the §302 Datenmapping: the data model is easy, the mapping is the work.
Both diagrams describe the same plan. Neither has been implemented.