{
  "format": "vercy-model-allocation-candidate/v1",
  "contourId": "EM-FAC-02",
  "proposedName": "Emission Factor Registry",
  "modelId": null,
  "registryId": null,
  "allocationState": "unassigned",
  "decision": "NEW MODEL",
  "canonicalPublishable": false,
  "identityTest": {
    "stableIdentity": "A governed factor registry and factor set persist independently of any calculation run or disclosure.",
    "versionIdentity": "Publisher releases, vintage, geography, technology, method, units, uncertainty, licence or supersession changes create immutable factor versions.",
    "independentLifecycle": [
      "draft",
      "published",
      "effective",
      "superseded",
      "withdrawn",
      "retired"
    ],
    "mastership": "emission-factor publisher or governed registry"
  },
  "boundary": {
    "owns": [
      "registry and factor-set identity",
      "immutable factor versions",
      "publisher and source release provenance",
      "quantity kinds, units, validity and uncertainty",
      "licence, geography, technology and supersession"
    ],
    "references": [
      {
        "target": "WM-DAT-001",
        "purpose": "Source dataset identity and release",
        "edgeState": "unapproved"
      },
      {
        "target": "WM-MAT-008",
        "purpose": "Measured or derived factor observations",
        "edgeState": "unapproved"
      },
      {
        "target": "WM-KNW-012",
        "purpose": "Method and provenance documentation",
        "edgeState": "unapproved"
      },
      {
        "target": "WM-ECO-034",
        "purpose": "Disclosures citing results derived from factors",
        "edgeState": "unapproved"
      }
    ],
    "excludes": [
      "activity facts",
      "inventory boundary",
      "calculation run and result",
      "GWP characterization-set identity",
      "disclosure and assurance lifecycle"
    ]
  },
  "objects": {
    "EmissionFactorRegistry": {
      "identity": [
        "factorRegistryId"
      ],
      "required": [
        "publisherRef",
        "name",
        "status",
        "currentReleaseRef"
      ],
      "optional": [
        "licenceRef",
        "successorRef"
      ],
      "lifecycle": [
        "draft",
        "published",
        "effective",
        "superseded",
        "withdrawn",
        "retired"
      ],
      "currentReleaseRefTarget": "FactorSet identity triple"
    },
    "FactorVersion": {
      "identity": [
        "factorRegistryId",
        "factorSetId",
        "setVersion",
        "factorId"
      ],
      "required": [
        "sourceDatasetRef",
        "referenceYear",
        "geography",
        "activityMatch",
        "numeratorKind",
        "denominatorKind",
        "methodClass",
        "uncertainty",
        "validFrom",
        "contentDigest"
      ],
      "optional": [
        "validTo",
        "technology",
        "supersedesRef",
        "licenceRef"
      ],
      "closedSets": {
        "methodClass": [
          "supplierSpecific",
          "gridAverage",
          "residualMix",
          "eeioSpend",
          "processLca",
          "proxy"
        ]
      }
    },
    "FactorSet": {
      "identity": [
        "factorRegistryId",
        "factorSetId",
        "setVersion"
      ],
      "required": [
        "releaseLabel",
        "publisherRef",
        "publishedAt",
        "contentDigest",
        "immutable"
      ],
      "optional": [
        "supersedesSetVersion",
        "licenceRef",
        "withdrawnAt"
      ],
      "lifecycle": [
        "draft",
        "published",
        "effective",
        "superseded",
        "withdrawn"
      ]
    }
  },
  "invariants": [
    "Every factor version names publisher and source dataset release.",
    "Numerator and denominator quantity kinds and units are explicit.",
    "Validity, vintage, geography and technology match are explicit.",
    "Factor uncertainty and pedigree remain separate from activity uncertainty.",
    "Proxy substitution records a representativeness downgrade.",
    "GWP characterization set remains separately versioned.",
    "CO2e conversion pins both factor and characterization versions.",
    "A factor version never owns source activity or calculation results.",
    "Licence and reuse restrictions propagate to derived evidence.",
    "Withdrawn factors remain resolvable for historical runs.",
    "Unit conversions cite direction, authority and version.",
    "Financial cost never substitutes for an impact factor without an explicit spend-proxy method.",
    "Corrections create successor versions and preserve cited history.",
    "Registry identifiers and factor versions are never recycled.",
    "A factor version exists only inside one published factor set version.",
    "A published factor set version never gains, loses or alters a factor version.",
    "A calculation run pins factor set versions, never bare factor names.",
    "Every enumerated field is a closed set; an unrecognised value blocks the run rather than passing through."
  ],
  "holds": [
    "Registry allocation is pending and no identifier may be guessed.",
    "Independent Grok review is pending.",
    "No allocated characterization-set master exists.",
    "Frozen audit, source pins and crosswalks remain pending.",
    "No approved relation edge exists for any reference in this candidate; all reference edges are declared unapproved."
  ]
}
