{
  "format": "vercy-enterprise-allocation-fixtures/v1",
  "candidateName": "Technology",
  "cases": [
    {
      "id": "multi-product",
      "kind": "positive",
      "input": "One protocol is implemented by several products.",
      "expect": "The technology remains one abstract capability with external product mappings.",
      "target": "Technology",
      "violates": "One technology may map many-to-many to products.",
      "closesDefect": "D1"
    },
    {
      "id": "upstream-deprecation",
      "kind": "positive",
      "input": "A technology is deprecated upstream.",
      "expect": "The sourced lifecycle changes without mutating local adoption.",
      "target": "Technology",
      "violates": "Upstream lifecycle is separately sourced.",
      "closesDefect": "D1"
    },
    {
      "id": "successor",
      "kind": "positive",
      "input": "A successor protocol is recognized.",
      "expect": "Both identities and the successor assertion remain resolvable.",
      "target": "Technology",
      "violates": "Retirement preserves historical mappings.",
      "closesDefect": "D1"
    },
    {
      "id": "product-collapse",
      "kind": "negative",
      "input": "A vendor product is used as technology identity.",
      "expect": "The conflation is rejected.",
      "target": "Technology",
      "violates": "Technology and product remain distinct.",
      "closesDefect": "D1",
      "expectedCode": "EMTEC09.TECH.PRODUCT_CONFLATION"
    },
    {
      "id": "deployment-state",
      "kind": "negative",
      "input": "A deployment outage marks the technology obsolete.",
      "expect": "The inference is rejected.",
      "target": "Technology",
      "violates": "Technology and deployment remain distinct.",
      "closesDefect": "D1",
      "expectedCode": "EMTEC09.TECH.DEPLOYMENT_STATE_LEAK"
    },
    {
      "id": "license-inheritance",
      "kind": "negative",
      "input": "The technology inherits one product license.",
      "expect": "The inheritance is rejected.",
      "target": "Technology",
      "violates": "Technology never inherits producer or license.",
      "closesDefect": "D1",
      "expectedCode": "EMTEC09.TECH.LICENSE_INHERITANCE"
    },
    {
      "id": "tech-upstream-assertion-sourced",
      "target": "Technology",
      "kind": "positive",
      "input": "An upstream community asserts deprecation, naming the asserting body and the observation instant.",
      "expect": "The assertion is retained with asserting party and observation time while taxonomyStatus is unchanged.",
      "violates": "Upstream lifecycle is separately sourced.",
      "closesDefect": "D5"
    },
    {
      "id": "tech-status-conflation",
      "target": "Technology",
      "kind": "negative",
      "input": "A single status field is set to obsolete from an upstream notice and then read as the taxonomy state.",
      "expect": "The conflation is rejected; taxonomy status and upstream assertion are separate fields.",
      "violates": "(added:) Taxonomy status and upstream lifecycle assertions are separately recorded.",
      "closesDefect": "D5",
      "expectedCode": "EMTEC09.TECH.STATUS_CONFLATION"
    },
    {
      "id": "tech-upstream-unsourced",
      "target": "Technology",
      "kind": "negative",
      "input": "An upstream lifecycle change is recorded with no asserting party and no observation time.",
      "expect": "The assertion is rejected and the upstream state remains unknown.",
      "violates": "(added:) An upstream lifecycle assertion without asserting party and observation time is not recorded and the upstream state remains unknown.",
      "closesDefect": "D5",
      "expectedCode": "EMTEC09.TECH.UPSTREAM_UNSOURCED"
    },
    {
      "id": "tech-vendor-support-excluded",
      "target": "Technology",
      "kind": "negative",
      "input": "A vendor end-of-support date is recorded on the technology record.",
      "expect": "The placement is rejected; vendor support status is outside the technology boundary.",
      "violates": "(added:) Vendor support status and end-of-support date are excluded from Technology.",
      "closesDefect": "D3",
      "expectedCode": "EMTEC09.TECH.SUPPORT_ON_TECHNOLOGY"
    },
    {
      "id": "tech-deployment-reference-mastered",
      "target": "Technology",
      "kind": "positive",
      "input": "A technology is mapped to a deployed instance through the operator-side deployment boundary.",
      "expect": "The reference resolves to the evidenced deployment boundary and carries the prior-research-only hold.",
      "violates": "Technology and deployment remain distinct.",
      "closesDefect": "D3"
    },
    {
      "id": "tech-unevidenced-reference",
      "target": "Technology",
      "kind": "negative",
      "input": "A boundary reference names a registry identifier that appears in no admitted evidence.",
      "expect": "The reference is rejected as an unevidenced identifier.",
      "violates": "Registry allocation is pending and no identifier may be guessed.",
      "closesDefect": "D2",
      "expectedCode": "EMTEC09.REF.UNEVIDENCED_IDENTIFIER"
    },
    {
      "id": "tech-steward-no-authority",
      "target": "Technology",
      "kind": "negative",
      "input": "The taxonomy steward approves an adoption transition and signs an exception grant.",
      "expect": "Both acts are rejected; the steward holds no governance authority.",
      "violates": "(added:) The taxonomy steward is never a producer, vendor or subject owner, and confers no authority to adopt, assess, grant or waive.",
      "closesDefect": "D15",
      "expectedCode": "EMTEC09.TECH.STEWARD_AUTHORITY_CLAIM"
    },
    {
      "id": "tech-steward-named",
      "target": "Technology",
      "kind": "positive",
      "input": "A technology record names its taxonomy steward and no approver.",
      "expect": "The steward is retained as a catalogue role with no authority implied.",
      "violates": "(added:) The taxonomy steward is never a producer, vendor or subject owner, and confers no authority to adopt, assess, grant or waive.",
      "closesDefect": "D15"
    }
  ]
}
