{
  "format": "vercy-model-allocation-candidate/v1",
  "contourId": "EM-OPS-05",
  "proposedName": "Lot",
  "modelId": null,
  "registryId": null,
  "allocationState": "unassigned",
  "decision": "NEW MODEL",
  "canonicalPublishable": false,
  "identityTest": {
    "stableIdentity": "An issuer-qualified material lot remains identifiable across locations, stock positions, transformations, shipments and membership changes while its trace status evolves.",
    "versionIdentity": "Corrections to attributes or status create append-only versions; split, merge or blend creates new related lots rather than rewriting the source lot.",
    "independentLifecycle": [
      "created",
      "available",
      "partially-consumed",
      "exhausted",
      "closed"
    ],
    "mastership": "manufacturing or material-trace authority"
  },
  "boundary": {
    "owns": [
      "persistent issuer-qualified lot identity",
      "material or product definition reference",
      "production or receipt origin",
      "quantity basis and unit",
      "quality, quarantine, release and expiry status",
      "split, merge and blend lineage",
      "recall and closure status",
      "lot-to-item provenance membership"
    ],
    "references": [
      {
        "target": "WM-OBJ-001",
        "purpose": "Serialized physical-item identity"
      },
      {
        "target": "WM-OBJ-020",
        "purpose": "Source-qualified stock position"
      },
      {
        "target": "WM-FLW-011",
        "purpose": "Shipment or consignment"
      },
      {
        "target": "WM-FLW-013",
        "purpose": "Supply trace edge"
      },
      {
        "target": "WM-ECO-024",
        "purpose": "Dispatch, receipt, inspection and acceptance assertions"
      }
    ],
    "excludes": [
      "serialized item, handling unit or stock-position identity",
      "transformation occurrence or work-order identity",
      "movement, shipment or fulfilment milestone",
      "custody, title or ownership",
      "BOM, routing or planned composition",
      "recall authority or inspection determination"
    ]
  },
  "objects": {
    "Lot": {
      "identity": [
        "issuerRef",
        "lotId"
      ],
      "required": [
        "definitionRef",
        "quantityBasis",
        "quantityScope",
        "unit",
        "status",
        "recordTime",
        "versionId",
        "provenance"
      ],
      "optional": [
        "producedAt",
        "expiresAt"
      ],
      "lifecycle": [
        "created",
        "available",
        "partially-consumed",
        "exhausted",
        "closed"
      ],
      "concurrentDispositionStates": [
        "unrestricted",
        "quarantined",
        "released",
        "expired",
        "recall-marked"
      ],
      "quantityScope": {
        "grain": [
          "whole-lot",
          "declared-sublot",
          "declared-position-slice"
        ],
        "unitCodeListVersionPinned": true,
        "measurementBasis": [
          "net",
          "gross",
          "theoretical",
          "mass-balance"
        ]
      },
      "residual": {
        "requiredWhen": "status in [partially-consumed, quarantined, released]",
        "quantity": "required",
        "unit": "required",
        "basis": "required",
        "asOfRecordTime": "required",
        "derivation": [
          "authoritative-snapshot",
          "event-ledger-projection"
        ]
      },
      "recallDecisionRef": {
        "requiredWhen": "disposition == recall-marked",
        "authority": "external",
        "mustNotBeMintedHere": true
      },
      "lineage": {
        "requiredWhen": "lot was created by, or contributed to, split | merge | blend | repack | requalification",
        "kind": [
          "split",
          "merge",
          "blend",
          "repack",
          "requalification"
        ],
        "predecessorRefs": "required",
        "successorRefs": "required",
        "proportionBasis": "required",
        "proportionMethod": [
          "measured",
          "declared",
          "mass-balance-inferred"
        ],
        "edgeAssertionClass": [
          "asserted",
          "inferred"
        ]
      },
      "knowledgeTimeRange": {
        "from": "required",
        "to": "open-ended-allowed"
      },
      "supersedesVersionRef": {
        "requiredWhen": "versionId is not the first version"
      },
      "timeFormat": "RFC3339, seconds precision, explicit offset",
      "provenance": {
        "sourceSystem": "required",
        "assertingAgentRef": "required",
        "method": [
          "observed",
          "declared",
          "inferred"
        ],
        "evidenceDigest": "required",
        "confidence": "optional"
      },
      "originRef": {
        "kind": [
          "transformation-event-candidate",
          "external-receipt",
          "opening-balance"
        ],
        "candidateName": "Transformation Event",
        "modelId": null,
        "registryId": null,
        "allocationState": "unassigned",
        "requiredWhen": "origin is production",
        "mustNotCiteBomOrRouting": true
      }
    }
  },
  "invariants": [
    "Lot identity is issuer-qualified and never inferred from SKU, location or stock position.",
    "Lot, serialized item, handling unit and stock position retain separate identities.",
    "Lot membership on an item is provenance and never becomes item identity.",
    "Every lot quantity carries unit, basis and scope.",
    "Split, merge and blend create explicit successor lots with lineage.",
    "BOM and routing never prove actual lot composition.",
    "Location never implies custody and custody never implies title.",
    "Missing stock or genealogy rows are unobserved, never zero.",
    "Quarantine, release, expiry, exhaustion and recall remain distinct states.",
    "Recall analysis never creates recall authority.",
    "Same-SKU membership never proves affectedness across unrelated lots.",
    "Corrections append successors and lot identifiers are never reused.",
    "Residual lot quantity remains explicit, unit-and-basis qualified and traceable after every partial consumption; consumption never closes a lot by implication.",
    "Consumption state and disposition state are concurrent independent axes; no disposition value implies a consumption value and no consumption value implies a disposition value.",
    "A recall-marked disposition is valid only while citing an external recall decision reference; no model in this contour creates, infers or substitutes recall authority.",
    "Effective time, record time and knowledge time remain separately recorded and are never collapsed; a correction creates a new versionId citing supersedesVersionRef and never rewrites a prior version.",
    "Every lot assertion carries source system, asserting agent, method and evidence digest; declared, observed and inferred assertions never merge."
  ],
  "holds": [
    "Registry allocation is pending and no identifier may be guessed.",
    "Handling-unit, recall-authority and inspection boundaries require canonical resolution.",
    "External trace crosswalks and fixtures remain pending.",
    "Independent provider review is on record and one frozen semantic audit was completed 2026-10-01; all 35 recorded audit defects and all 51 recorded additional fixtures are remediated without rerun. No installability, conformance or publication-readiness claim is made."
  ]
}
