{
  "format": "vercy-enterprise-adoption-profile/v1",
  "contourId": "EM-DAT-01",
  "name": "Enterprise Dataset and Data Contract",
  "decision": "PROFILE",
  "newRuntimeId": false,
  "bases": [
    "WM-DAT-001",
    "WM-DAT-004"
  ],
  "constraints": [
    "WM-DAT-001 is the sole authority for dataset, dataset-version and distribution identity; EM-DAT-01 creates no aggregate or runtime identity.",
    "WM-DAT-004 is the sole authority for schema and contract-version identity, compatibility assessment and producer-consumer obligations.",
    "Every released dataset version has a stable dataset identifier and a distinct version-scoped identifier.",
    "Released dataset-version and distribution assertions are immutable: changed bytes require a new distribution identity or a successor dataset version, and existing fixity is never overwritten.",
    "Every published distribution carries a named digest algorithm and digest value, or references a signed manifest that itself carries that digest.",
    "Every governed dataset version has append-only, timestamped conformance assertions that pin an exact WM-DAT-004 contract version and record conformance status.",
    "At one conformance assertion time all distributions of a dataset version bind the same contract version; later assertions preserve history, so dataset and contract versions may advance independently without mutable latest links.",
    "Every compatibility outcome names its baseline dataset and contract version set; transitive modes name every evaluated predecessor.",
    "Compatibility mode NONE requires a recorded accountable exception and never yields an implicit compatible outcome.",
    "The published compatibility outcome covers structural, governed semantic and value-domain changes plus any declared content-compatibility assessment.",
    "Dataset breaking-change status is derived solely from that scoped published compatibility outcome and is never asserted independently.",
    "Consumer scope and an explicit change-notice path are declared; channel, notice duration and service levels remain deployment policy.",
    "Issuing a successor dataset version records predecessor and provenance assertions without absorbing the full lineage graph.",
    "Designated critical data elements bind authoritative governed-term and value-domain versions; designation policy remains external.",
    "A catalogue record describes a dataset and never replaces the dataset or its version identity.",
    "Dataset-level quality evidence is a reference or summary only; EM-DAT-04 and its base authorities own quality rules, metrics, observations and assessment runs.",
    "An ODCS dataProduct element is an imported reference to the WM-DAT-008 and EM-DAT-02 data-product authority, never a second product or dataset identity.",
    "Pipeline and deep-lineage graphs remain external masters; this profile requires only predecessor and provenance references.",
    "PID scheme, licence catalogue, consumer-registration enforcement, freshness targets and ODCS dialect selection beyond an exact version pin remain deployment policy.",
    "DatasetSchemaContract and other fused roots are forbidden; the conformance binding remains a WM-DAT-001 dataset-version facet referencing WM-DAT-004."
  ],
  "holds": [
    "WM-DAT-001 and WM-DAT-004 remain reviewable drafts with publishableCanonical false.",
    "DataCite source-version consistency and live source pinning remain unresolved.",
    "ODCS version pinning and the dataProduct deprecation contradiction remain unresolved.",
    "ISO/IEC 11179 alignment lacks clause-level evidence.",
    "Multi-profile SHACL validation remains unrun.",
    "The single frozen audit found released-version immutability and breaking-source scope defects; candidate.3 repairs both without an audit rerun.",
    "This candidate is a non-canonical reviewable profile only."
  ],
  "version": "0.1.0",
  "assurance": "reviewable-research-profile",
  "publicationState": "published-partial",
  "runtimeId": null,
  "canonical": false,
  "installable": false
}
