{
  "format": "vercy-world-model-candidate/v1",
  "contourId": "EM-PRD-02",
  "modelId": "WM-ACT-004",
  "registryId": "vr.wm-act-004",
  "name": "Service Definition",
  "version": "0.3.0-candidate.3",
  "entryKind": "aggregate",
  "status": "research-candidate",
  "canonicalPublishable": false,
  "purpose": "Represent the durable identity and immutable definitions of a provider-accountable service outcome for an eligible consumer scope, with effective-dated provider/realization bindings and typed owned dependency associations, while delegating offering, entitlement, request, fulfilment, service-level and observation lifecycles.",
  "boundary": {
    "owns": [
      "durable service identity and immutable definition versions",
      "expected outcome semantics and eligible consumer scope",
      "one effective accountable-provider role type per definition",
      "service classifications and lifecycle",
      "effective-dated operational-provider and realization bindings",
      "typed directional owned dependency associations without an independent public business identity"
    ],
    "delegates": [
      "catalogue presentation, eligibility presentation, commercial terms and optional price to the shared Offering Catalogue candidate",
      "subscription, entitlement and consumption occurrences to WM-ECO-022 or the applicable rights, request and fulfilment masters",
      "requests and service cases to WM-ACT-021 or the applicable request authority",
      "delivery and fulfilment episodes to external activity or transaction masters",
      "service-level commitments, objectives and reliability evaluation to WM-SFT-016 and agreement authorities",
      "measured values and observations to WM-MAT-008",
      "provider-party identity and role incumbency to existing organization, party and role masters",
      "delivery workflow definitions to WM-ACT-003",
      "process, software component, API, endpoint, platform and vendor-stack identity to their existing masters"
    ],
    "excludes": [
      "price eligibility presentation channel hours or capacity terms",
      "subscription entitlement consumption request case or delivery episode state",
      "live runtime endpoint status instance counts or copied metrics",
      "SLA terms thresholds measurement streams or breach adjudication",
      "product process API endpoint software component or deployment identity",
      "a second offering catalogue entitlement or consumption aggregate",
      "an independently identified Service Dependency aggregate"
    ]
  },
  "objects": {
    "Service": {
      "identity": [
        "serviceId"
      ],
      "required": [
        "name",
        "purpose",
        "expectedOutcome",
        "consumerScope",
        "accountableProviderRoleType",
        "classification",
        "status"
      ],
      "optional": [
        "supersedesServiceId",
        "retirementReason"
      ],
      "lifecycle": [
        "draft",
        "defined",
        "active",
        "superseded",
        "retired"
      ],
      "joinKey": "serviceRef = (registryId, serviceId); this is the existing WM-ACT-004 instance key, not a new model or runtime identifier."
    },
    "ServiceDefinitionVersion": {
      "identity": [
        "serviceId",
        "ownerAssignedVersion"
      ],
      "required": [
        "ownerAssignedVersion",
        "effectiveFrom",
        "outcomeSpecification",
        "consumerScope",
        "accountableProviderRoleType",
        "contentDigest",
        "status"
      ],
      "optional": [
        "effectiveTo",
        "supersedesVersion"
      ],
      "lifecycle": [
        "draft",
        "issued",
        "superseded",
        "withdrawn"
      ],
      "objectKind": "contained-immutable-revision",
      "versionAuthority": "The Service aggregate owner assigns a monotonic revision within one serviceId. Non-identity definition changes append a revision; a material change to expected outcome, eligible consumer scope or accountability archetype creates a successor Service identity."
    },
    "ServiceRealizationBinding": {
      "identity": [
        "serviceVersionRef",
        "ownerLocalRecordOrdinal"
      ],
      "required": [
        "serviceVersionRef",
        "ownerLocalRecordOrdinal",
        "providerRef",
        "realizationRef",
        "realizationKindRef",
        "scopeRef",
        "validFrom",
        "authorityRef",
        "status"
      ],
      "optional": [
        "validTo",
        "channelRefs",
        "region",
        "tier",
        "withdrawalReason"
      ],
      "objectKind": "owned-association",
      "navigation": "Definition-scoped traversal only. The association has no public URI, no independent external lookup and no lifecycle events outside append-only Service aggregate history."
    },
    "ServiceDependency": {
      "identity": [
        "sourceServiceVersionRef",
        "ownerLocalRecordOrdinal"
      ],
      "required": [
        "sourceServiceVersionRef",
        "ownerLocalRecordOrdinal",
        "targetRef",
        "targetKind",
        "dependencyTypeRef",
        "scopeRef",
        "validFrom",
        "authorityRef",
        "status"
      ],
      "optional": [
        "validTo",
        "fallbackRef",
        "criticality",
        "withdrawalReason"
      ],
      "objectKind": "owned-association",
      "navigation": "Definition-scoped traversal only. The association has no public URI, no independent external lookup and no lifecycle events outside append-only Service aggregate history."
    }
  },
  "dependencyTypes": [
    "illustrative:requires",
    "illustrative:optional",
    "illustrative:degrades-to"
  ],
  "relations": [
    {
      "target": "WM-ORG-001",
      "relation": "REFERENCE",
      "required": true,
      "purpose": "Resolve accountable provider and realization-provider organization identity."
    },
    {
      "target": "WM-ACT-003",
      "relation": "REFERENCE",
      "required": false,
      "purpose": "Resolve a delivery workflow without copying process definition or execution state."
    },
    {
      "target": "WM-ECO-022",
      "relation": "REFERENCE",
      "required": false,
      "purpose": "Resolve recurring subscription or consumption relationships."
    },
    {
      "target": "WM-ACT-021",
      "relation": "REFERENCE",
      "required": false,
      "purpose": "Resolve service requests or cases without importing their lifecycle."
    },
    {
      "target": "WM-SFT-016",
      "relation": "REFERENCE",
      "required": false,
      "purpose": "Resolve service-level objectives and reliability evaluation."
    },
    {
      "target": "WM-MAT-008",
      "relation": "REFERENCE",
      "required": false,
      "purpose": "Resolve measured quality observations without copying values into the service definition."
    }
  ],
  "operations": [
    {
      "id": "issue-service-definition",
      "effect": "Issue an immutable service-definition version.",
      "authority": "service owner"
    },
    {
      "id": "supersede-service-definition",
      "effect": "Issue a successor while preserving prior references.",
      "authority": "service owner"
    },
    {
      "id": "bind-realization",
      "effect": "Append a definition-scoped realization-binding history record after kind and scope vocabularies are approved.",
      "authority": "service owner"
    },
    {
      "id": "withdraw-realization",
      "effect": "Append an end-of-validity record through the owning Service aggregate; the association has no independent lifecycle event.",
      "authority": "service owner"
    },
    {
      "id": "assert-service-dependency",
      "effect": "Append a definition-scoped dependency history record after the external type and scope vocabularies are approved; allocate no public identifier.",
      "authority": "authorized service owner"
    },
    {
      "id": "retire-service",
      "effect": "Retire new use while preserving historical obligations and references.",
      "authority": "service owner"
    }
  ],
  "invariants": [
    "Service identity is based on expected outcome, eligible consumer scope and accountable-provider role type rather than one provider, endpoint or implementation.",
    "Stable expected outcome and consumer scope preserve Service identity across provider, realization, channel, price and process changes.",
    "Consumer scope is an eligibility class and never a consumption occurrence or technical API client.",
    "One accountable-provider role type applies to a definition at an effective time; incumbent parties are resolved through external role mastership and effective bindings.",
    "Outcome semantics are declared once on the Service definition and realizations do not restate them.",
    "A Service contains no runtime endpoint status, instance count or copied live metric.",
    "Expected outcome, committed level and observed result remain separate facts.",
    "Catalogue presentation owns eligibility presentation, channels, hours, capacity, commercial terms and optional price; an internal offering may be explicitly unpriced.",
    "Catalogue membership is not required for Service identity, but a requestable or subscribed Service must resolve an external Offering Catalogue row.",
    "One Service definition may have many offerings and one offering may compose several definitions; offering withdrawal does not retire or mint a Service.",
    "A Service definition may exist without an offering row when it is not requestable or subscribed.",
    "One Service may have multiple concurrent operational providers and realizations only through qualified effective-dated bindings.",
    "Every realization binding pins one immutable Service-definition version and records provider, external realization target, kind, scope, validity and authority.",
    "Replacing a provider, endpoint, workflow, component, vendor stack or implementation does not change Service identity while outcome, consumer scope and accountability remain stable.",
    "Product, process, software component, API endpoint, deployment and Service remain distinct masters.",
    "A technical endpoint without independent outcome, consumer scope and accountable-provider semantics is never a Service.",
    "Service Dependency is an owned association, not an independent aggregate or public business identifier.",
    "Service dependencies are directional, typed, validity-scoped and pinned to a source definition version.",
    "A dependency target is a Service definition or an already-identified capability, never a process, component or API endpoint.",
    "The dependency vocabulary is externally governed or extensible and is not frozen by this candidate.",
    "Service Consumption has no independent identity here and is derived from entitlement, request and fulfilment records keyed by Service, offering and party.",
    "Request, entitlement, fulfilment, SLA and observation events never mutate Service identity automatically.",
    "SLA/SLO and observation authorities must reference Service definitions by join key; absence of that join is a hold, not permission to absorb their data.",
    "Retired Services and superseded realization bindings remain resolvable for historical queries.",
    "Access to Service references cannot exceed access to linked consumer, provider, realization, agreement or evidence records.",
    "No new public model, runtime, binding, dependency or consumption identifier is allocated by EM-PRD-02.",
    "ServiceDefinitionVersion is a contained immutable revision. The Service aggregate owner assigns ownerAssignedVersion monotonically within serviceId; it is not a separate enterprise root.",
    "A non-identity definition correction appends a revision; a material change to expected outcome, eligible consumer scope or accountability archetype creates a successor Service identity.",
    "The accountable-provider role type is an accountability archetype independent of provider party, geography, employment relationship and internal or outsourced sourcing mode.",
    "Realization Binding and Service Dependency records are traversable only from their owning Service definition and expose no public URI or independent lookup.",
    "Binding and dependency history is append-only Service aggregate history; these associations emit no independent lifecycle events.",
    "Association record identity uses owner-local ordinal plus owner version only; kind, type and scope labels never participate in persistent keys.",
    "No effective binding is published until approved pinned realization-kind and scope vocabularies exist.",
    "No effective dependency is published until an approved pinned dependency-type vocabulary exists.",
    "For offering-backed consumption, derivation uses Service, offering and party; for offering-less non-requestable internal Service activity, derivation uses Service and party plus the owning entitlement, request or fulfilment record.",
    "Requestable or subscribed status is catalogue applicability, not a Service identity attribute; changing it does not mint a Service but publication is held until an external offering resolves.",
    "The SLA and observation join key is the instance-level serviceRef tuple (registryId, serviceId), with serviceVersionRef when the assertion is revision-specific.",
    "Reference visibility is the intersection of permissions across every linked Service, consumer, provider, realization, agreement and evidence record; inaccessible references are redacted without confirming hidden-record existence."
  ],
  "holds": [
    "The shared Offering Catalogue candidate still requires allocation adjudication in EM-PRD-01 and must support explicit unpriced/internal terms plus multi-definition composition.",
    "Accountable provider role type and incumbent party resolution require existing role and party masters.",
    "Process, software, API, endpoint, platform and vendor-stack realization targets must remain externally referable.",
    "SLA/SLO and observation authorities must expose a Service Definition join key before canonical publication.",
    "A standalone dependency identity requires a later independent decision only if contracts, change control or assurance must cite it as an object.",
    "Registry collision checks must confirm no existing contour claims Service Definition mastership.",
    "Package conversion and live HTTP/runtime/search/package verification are pending.",
    "External standards crosswalks are not conformance claims.",
    "Service-definition versions remain contained and binding/dependency records remain definition-scoped and non-navigable outside the owning aggregate.",
    "No effective binding or dependency publication occurs before pinned realization-kind, scope and dependency-type vocabularies are approved.",
    "Requestable or subscribed Services remain held until the EM-PRD-01 Offering Catalogue is allocated and a row resolves.",
    "SLA/SLO and observation publication requires the instance-level serviceRef join key and versionRef where revision-specific.",
    "Reference access requires intersection semantics and non-disclosing redaction across all linked records."
  ],
  "dependencyTypeAuthority": "No effective dependency instance may be published until an external dependency-type vocabulary is approved and pinned. Existing illustrative labels never participate in persistent keys.",
  "bindingVocabularyAuthority": "No effective realization binding may be published until realization-kind and scope vocabularies are approved and pinned. Vocabulary labels never participate in persistent keys."
}
