03 — Integration

Classification is a member of the Work & Supply network (message protocol v1). Its contract is schema/classification.integration.dsl (authoring spec docs/implementation/integration_authoring_spec.md, v1.7), generated with python -m codegen.cli integration classification --network work_supply; the handlers are in integration/handlers.py. The whole network is in networks/work_supply/NETWORK_MAP.md.

What it owns

Network entity Model Business reference
classification.smcs Smcs code (may be corrected; copies follow)
classification.modifier Modifier code (may be corrected; copies follow)
classification.job JobCode code (may be corrected; copies follow)

Messages

Kind Message What
answers classification.search_smcs text search on code and description (pickers)
answers classification.search_modifiers the same, optionally one dimension
answers classification.search_jobs the same for job codes
answers classification.smcs_profile one SMCS code with its parent and group
publishes classification.smcs_reference_changed an SMCS code corrected (generated)
publishes classification.modifier_reference_changed a modifier's code corrected (generated)
publishes classification.job_reference_changed a job code corrected (generated)

The three …_reference_changed events carry the network id, the new code and the previous one; applications that hold copies refresh them with a built-in handler.

Who refers to it

asset_register — Asset (smcs_cid + _ref: what kind of component it is) and Component Installation (smcs_cid, modifier_cid — the fitment position — and removal_job_cid). Each reference has a search picker on the form and links ↗ to the code here (/resolve/<cid>).

Inferring parents

The parent rule runs in own_record_saved (integration/handlers.py) — a runtime hook called before every save of a canonical record, also while the demo data loads — so codes added on screen, by seed or by message are placed the same way.