{
  "format": "vercy-world-model-fixtures/v1",
  "modelId": "WM-ACT-004",
  "version": "0.3.0-candidate.3",
  "cases": [
    {
      "id": "hr-onboarding-multi-provider",
      "kind": "positive",
      "input": "One onboarding Service has EU in-house and APAC outsourced realization bindings.",
      "expect": "One Service identity and outcome specification remain stable; provider parties and implementations are effective bindings."
    },
    {
      "id": "identity-verification-priced",
      "kind": "positive",
      "input": "One identity-verification Service is exposed through two endpoints and a usage-priced offering.",
      "expect": "Endpoints and price remain external while Service identity is unchanged."
    },
    {
      "id": "internal-unpriced-definition",
      "kind": "positive",
      "input": "An internal platform Service is accountable and observed but is not requestable and has no offering row.",
      "expect": "The Service definition is valid; catalogue membership is not an identity invariant."
    },
    {
      "id": "requestable-requires-offering",
      "kind": "negative",
      "input": "A Service is marked requestable but no external offering row can be resolved.",
      "expect": "The candidate is held for catalogue coverage; it does not create a second offering master."
    },
    {
      "id": "offering-composes-services",
      "kind": "positive",
      "input": "One external offering bundles two Service definitions and is later withdrawn.",
      "expect": "Both Service identities survive; offering composition and withdrawal remain catalogue-owned."
    },
    {
      "id": "endpoint-replacement",
      "kind": "positive",
      "input": "An API endpoint is replaced with no change to outcome consumer scope or accountability.",
      "expect": "No new Service identity; only the realization binding changes."
    },
    {
      "id": "provider-replacement",
      "kind": "positive",
      "input": "An external provider replaces an internal provider for the same outcome, consumer scope and accountable role.",
      "expect": "No new Service identity; provider incumbency and realization bindings are effective-dated."
    },
    {
      "id": "endpoint-without-service-semantics",
      "kind": "negative",
      "input": "A technical endpoint has uptime metadata but no consumer outcome or accountable-provider role type.",
      "expect": "It is not accepted as a Service."
    },
    {
      "id": "process-is-not-service",
      "kind": "negative",
      "input": "A workflow is presented as a Service solely because it performs onboarding steps.",
      "expect": "The workflow remains a process realization and cannot own Service identity."
    },
    {
      "id": "measurement-does-not-rewrite-promise",
      "kind": "negative",
      "input": "One observed latency breaches a target.",
      "expect": "Observation and breach result remain external and do not mutate the Service definition."
    },
    {
      "id": "consumption-is-derived",
      "kind": "positive",
      "input": "A consumer has an entitlement, two requests and one fulfilment for a Service offering.",
      "expect": "Consumption is derived from external records and no Service Consumption root is minted."
    },
    {
      "id": "dependency-version-scope",
      "kind": "positive",
      "input": "Service A requires version 2 of Service B only in region EU.",
      "expect": "The owned dependency association remains directional, version-pinned, region-scoped and effective-dated without a public identifier."
    },
    {
      "id": "dependency-capability-target",
      "kind": "positive",
      "input": "A Service depends on an already-identified platform capability.",
      "expect": "The target is allowed when its external master is resolvable; the dependency does not master that capability."
    },
    {
      "id": "dependency-endpoint-target",
      "kind": "negative",
      "input": "A Service Dependency directly targets an API endpoint.",
      "expect": "Rejected: the endpoint is a realization target, not a Service Dependency target."
    },
    {
      "id": "dependency-taxonomy-not-frozen",
      "kind": "negative",
      "input": "A local dependency label is treated as globally canonical because it appears in this candidate.",
      "expect": "Rejected: dependency labels are illustrative until an external vocabulary authority is approved."
    },
    {
      "id": "sla-join-gap",
      "kind": "negative",
      "input": "An SLA cannot reference the Service-definition key and its metrics are proposed for copying into WM-ACT-004.",
      "expect": "Publication remains held; SLA terms and measurements are not absorbed."
    },
    {
      "id": "retired-service-history",
      "kind": "positive",
      "input": "A Service is retired while historical subscriptions and cases remain.",
      "expect": "Service and superseded bindings remain resolvable without accepting new consumption."
    },
    {
      "id": "no-public-association-identifiers",
      "kind": "negative",
      "input": "A binding or dependency receives a new public business identifier from this contour.",
      "expect": "Rejected: associations may have internal persistence keys only and EM-PRD-02 allocates no public identifier."
    },
    {
      "id": "contained-version-authority",
      "kind": "positive",
      "input": "A wording correction leaves outcome, consumer scope and accountability archetype unchanged.",
      "expect": "The Service owner appends a monotonic contained revision under the same serviceId; no new root is created."
    },
    {
      "id": "identity-dimension-change",
      "kind": "negative",
      "input": "A proposed revision changes the expected outcome and consumer scope materially.",
      "expect": "It cannot be a revision; a successor Service identity is required under WM-ACT-004 authority."
    },
    {
      "id": "binding-definition-scoped-only",
      "kind": "negative",
      "input": "A realization binding is exposed by a public URI and independent lookup.",
      "expect": "Rejected: bindings are available only through definition-scoped traversal and aggregate history."
    },
    {
      "id": "outsourcing-role-independence",
      "kind": "positive",
      "input": "EU internal staff and APAC BPO staff fill the same accountable-provider archetype.",
      "expect": "Sourcing mode and provider party do not change the role type or Service identity."
    },
    {
      "id": "unapproved-binding-vocabulary",
      "kind": "negative",
      "input": "A binding becomes effective using local realization-kind and scope labels without approved pinned vocabularies.",
      "expect": "Publication is held; labels never re-key association records."
    },
    {
      "id": "unapproved-dependency-vocabulary",
      "kind": "negative",
      "input": "A dependency becomes effective using an illustrative local type.",
      "expect": "Publication is held until an approved pinned dependency-type vocabulary exists."
    },
    {
      "id": "offeringless-internal-consumption-view",
      "kind": "positive",
      "input": "A non-requestable internal Service has a fulfilment record for a party and no offering.",
      "expect": "The view derives from Service, party and the owning external record with no null offering identity and no consumption root."
    },
    {
      "id": "instance-level-sla-join",
      "kind": "positive",
      "input": "An SLA references registryId plus serviceId and pins serviceVersionRef for revision-specific terms.",
      "expect": "The join resolves the Service instance without copying SLA fields or allocating a new model identifier."
    },
    {
      "id": "reference-rights-intersection",
      "kind": "negative",
      "input": "A consumer can read the Service but not its confidential provider binding.",
      "expect": "The provider reference is redacted under intersection semantics without confirming the hidden record exists."
    },
    {
      "id": "requestability-flip",
      "kind": "positive",
      "input": "A definition-only internal Service becomes requestable with no outcome or consumer-scope change.",
      "expect": "Service identity remains; catalogue applicability changes and publication is held until an offering row resolves."
    }
  ]
}
