entity

Model Parameter

L2 junction binding a canonical ParameterKey to a ProductModel; MTO allowable values and ranges live here.

EntityStatus: Implemented in api-v1

Purpose

Model parameters are the level-2 junction and the MTO source of truth for allowable values and ranges (ADR-0007, ADR-0008). Made-to-order products store their option universe here; stock/predefined-variant products derive displayed options from variant_parameters instead of duplicating values on the model.

Ranges use linked quantity_values with min/max roles rather than range columns on the junction.

This junction belongs to product-marketplace. The key and values it references do not — ParameterKey and ParameterValue are owned by BIM Ontology.

ModelParameterScope is not ParameterUsage

scopes uses ModelParameterScopevariant_option, spec, pricing, bim, manufacturing — which is a different vocabulary from the bim-ontology ParameterUsage set (variant_option, product_spec, bim_parameter, mfg_takeoff, qto_takeoff). Only variant_option is spelled the same in both. The two overlap conceptually and do not correspond term for term; do not translate one into the other.

scopes (plural) is the multi-select source of truth. The singular scope input is @deprecated; rehydrate prefers scopes when non-empty, falls back to wrapping scope in a one-element array, and otherwise leaves the set empty.

Invariants

  • Each junction pairs exactly one product model with one canonical parameter key.
  • Allowed values reference canonical ParameterValue records.
  • Stock scrape persistence does not write model_parameters (deferred MTO migration in PARAM-S7).

The aggregate itself validates nothing today: ModelParameter.rehydrate is the only entry point and it applies defaults rather than checks. The invariants above are enforced by the application layer and by the Airtable schema, not by the domain object.

  • ForManagingProductModels
  • ForCreatingScrapedParameterGraph

OpenAPI Operations

No dedicated REST endpoint today; populated during MTO migration (PARAM-S7) and model authoring workflows.

ADRs