{
  "format": "vercy-world-model-candidate/v1",
  "contourId": "EM-PRD-03",
  "modelId": "WM-REC-006",
  "registryId": "vr.wm-rec-006",
  "name": "Requirement",
  "version": "0.1.0-candidate.3",
  "entryKind": "aggregate",
  "status": "research-candidate",
  "canonicalPublishable": false,
  "purpose": "Represent stable Requirement identity, immutable governed revisions, revision-scoped acceptance criteria and attributable outbound revision-pinned trace assertions without absorbing needs, designs, tasks, tests, evidence, waivers, decisions, conflicts, reusable rules or an independently governed Requirement Baseline.",
  "boundary": {
    "owns": [
      "Requirement family identity, field-level authority and lifecycle",
      "immutable Requirement revisions and supersession lineage",
      "Acceptance Criteria contained by one exact Requirement revision",
      "outbound typed attributable Trace Link assertions whose single owner is one source Requirement revision",
      "derived non-authoritative comparison views over caller-supplied exact Requirement revision sets"
    ],
    "delegates": [
      "authoritative Requirement Baseline identity, authority, effectivity and successor lifecycle to an identifier-unassigned reservation-review candidate",
      "inter-Requirement conflict identity and lifecycle to an external issue, case or decision master",
      "reusable formal Rule identity, operands, units, tolerance and revision lifecycle to WM-KNW-013",
      "stakeholder Need identity and as-authored wording to its external discovery master",
      "feature and design identity to engineering/product masters",
      "implementation task and work-order lifecycle to WM-ACT-006 or the applicable work authority",
      "test case, execution and result evidence to WM-SFT-015",
      "evidence and citation stance to WM-KNW-008",
      "waiver, exception, conflict resolution and approval occurrence to external decision authorities",
      "evaluation, enforcement, compliance and conformance decisions to their source masters",
      "inbound trace projections to the target endpoint owner"
    ],
    "excludes": [
      "task completion as implementation proof or Requirement satisfaction",
      "copied reusable Rule text or local overrides that shadow a pinned Rule",
      "an authoritative Baseline disguised as a contained record or stored comparison diff",
      "product or configuration-management baselines that include design, software, test or evidence masters",
      "a RequirementConflict aggregate without an external owner",
      "mirrored inbound and outbound copies of one Trace Link",
      "a shared bidirectional trace fabric independent of a Requirement endpoint",
      "test execution, evidence custody, waiver lifecycle, decision authority or enforcement",
      "automatic verification transfer to changed revisions"
    ]
  },
  "objects": {
    "Requirement": {
      "identity": [
        "requirementId"
      ],
      "required": [
        "title",
        "purpose",
        "ownerRef",
        "authorityRef",
        "status"
      ],
      "optional": [
        "sourceNeedRefs",
        "classification",
        "retirementReason"
      ],
      "lifecycle": [
        "draft",
        "active",
        "superseded",
        "retired"
      ],
      "identityAuthority": "Priority: authoritative requirement-system identifier, then governed IRI, then host UUID/ULID. Title, ticket, filename and Requirement text are never identity."
    },
    "RequirementRevision": {
      "identity": [
        "requirementId",
        "revision"
      ],
      "required": [
        "statement",
        "rationale",
        "acceptanceCriterionSet",
        "issuedAt",
        "contentDigest",
        "status"
      ],
      "optional": [
        "supersedesRevision",
        "derivedFromRefs",
        "applicability",
        "priority"
      ],
      "lifecycle": [
        "draft",
        "issued",
        "superseded",
        "withdrawn"
      ],
      "objectKind": "contained-immutable-revision",
      "revisionSemantics": "The normative payload includes statement, contained Acceptance Criteria, exact Rule pins and outbound Trace Links. Any change appends a revision; supersession never overwrites."
    },
    "AcceptanceCriterion": {
      "identity": [
        "requirementRevisionRef",
        "ownerLocalOrdinal"
      ],
      "required": [
        "requirementRevisionRef",
        "ownerLocalOrdinal",
        "subjectRef",
        "conditionKind",
        "verificationMethod",
        "status"
      ],
      "optional": [
        "ruleRevisionRefs",
        "localPredicate",
        "operands",
        "unit",
        "localTolerance",
        "evidenceRequirement",
        "conversionProvenanceRef"
      ],
      "objectKind": "contained-revision-record",
      "ownership": "Requirement satisfaction clause only. A Rule-pinned criterion cannot carry local predicate, unit or tolerance overrides. Conversion to a one-off informal condition removes the Rule pin and records provenance. Work-order findings remain external."
    },
    "TraceLink": {
      "identity": [
        "sourceRequirementRevisionRef",
        "ownerLocalOrdinal"
      ],
      "required": [
        "sourceRequirementRevisionRef",
        "ownerLocalOrdinal",
        "targetRevisionRef",
        "relationType",
        "asserterRef",
        "assertedAt",
        "status"
      ],
      "optional": [
        "validTo",
        "confidence",
        "evidenceRefs",
        "supersedesTraceLinkRef",
        "suspectReason"
      ],
      "lifecycle": [
        "asserted",
        "challenged",
        "superseded",
        "withdrawn"
      ],
      "objectKind": "contained-outbound-association",
      "ownership": "Exactly one record is owned by the source Requirement revision. For Requirement-to-Requirement links, the target exposes only a derived inbound projection; mirrored records are forbidden. External targets remain externally mastered."
    },
    "RequirementRevisionSetView": {
      "objectKind": "derived-non-authoritative-view",
      "identity": [],
      "required": [
        "inputRequirementRevisionRefs",
        "criterionPins",
        "ruleRevisionPins",
        "inputDigest",
        "coverageStatus"
      ],
      "optional": [
        "comparisonInputDigest",
        "derivedDiff",
        "redactionNotice"
      ],
      "authority": "None. Inputs are supplied by an external authority or future Requirement Baseline master; the view owns no set, approval, effectivity, lifecycle or successor relation.",
      "persistence": "No authoritative persistence. A cache or receipt may be content-addressed by complete input digest and must be reproducible; derived diffs are never stored as masters.",
      "content": "Pins identities and digests only. Satisfaction, verification, waiver, compliance and decision verdicts are excluded.",
      "disclosure": "If any referenced record is inaccessible, coverageStatus is partial-redacted and the result cannot be interpreted as complete; withheld identities and counts are not disclosed."
    }
  },
  "traceRelationTypes": [
    "derives-from",
    "refines",
    "realizes",
    "verifies",
    "satisfies",
    "conflicts-with",
    "depends-on"
  ],
  "relations": [
    {
      "target": "WM-KNW-013",
      "relation": "REFERENCE",
      "required": false,
      "purpose": "Pin reusable rule revisions used by acceptance criteria without copying rule text."
    },
    {
      "target": "WM-ACT-006",
      "relation": "REFERENCE",
      "required": false,
      "purpose": "Trace implementation tasks without treating task state as satisfaction."
    },
    {
      "target": "WM-SFT-015",
      "relation": "REFERENCE",
      "required": false,
      "purpose": "Trace test definitions and results used in verification."
    },
    {
      "target": "WM-KNW-008",
      "relation": "REFERENCE",
      "required": false,
      "purpose": "Resolve qualified evidence and citation support or challenge."
    },
    {
      "target": "WM-ACT-024",
      "relation": "REFERENCE",
      "required": false,
      "purpose": "Resolve authorized conflict selection approval or waiver decisions."
    }
  ],
  "operations": [
    {
      "id": "issue-revision",
      "effect": "Issue an immutable requirement revision.",
      "authority": "requirement owner"
    },
    {
      "id": "issue-criterion",
      "effect": "Append one Requirement-revision-contained criterion; bind exact Rule revisions or a local informal condition without copying reusable Rule text.",
      "authority": "requirement owner"
    },
    {
      "id": "assert-trace",
      "effect": "Append an outbound, attributable, typed association from one owned Requirement revision to one pinned external endpoint.",
      "authority": "authorized contributor"
    },
    {
      "id": "challenge-trace",
      "effect": "Mark or supersede the owned outbound assertion without deleting it or changing the external endpoint.",
      "authority": "authorized reviewer"
    },
    {
      "id": "retire-requirement",
      "effect": "End new applicability while retaining all revisions baselines and evidence.",
      "authority": "requirement owner"
    },
    {
      "id": "derive-revision-set-view",
      "effect": "Compute a non-authoritative identity-and-digest comparison from caller-supplied exact revision, criterion and Rule pins; never store verdicts or a master diff.",
      "authority": "none; pure derivation"
    }
  ],
  "invariants": [
    "Requirement identity and each immutable Requirement revision are distinct.",
    "Identity priority is authoritative requirement-system identifier, governed IRI, then host UUID/ULID; title, ticket, filename and statement are not identity.",
    "A stakeholder Need preserves as-authored wording; a Requirement is an authority-issued verifiable statement derived from, never an edit of, that Need.",
    "Feature and design claim a realization approach; implementation task records work; neither is the Requirement nor proof of satisfaction.",
    "Every acceptance record cites exactly one Requirement revision, never a bare Requirement family.",
    "Acceptance Criterion is contained by one Requirement revision and is distinct from Rule, Test, Task and work-order acceptance findings.",
    "Reusable Rule text, operands, units, tolerance and evaluation contract are referenced by exact WM-KNW-013 revision rather than copied.",
    "A Rule-pinned criterion cannot carry local predicate, unit or tolerance overrides.",
    "Conversion from a Rule-pinned criterion to a one-off informal condition removes the Rule pin, creates a new Requirement revision and records conversion provenance.",
    "A reusable threshold change creates a new Rule revision and re-pin; a local informal threshold change creates a new criterion and Requirement revision.",
    "Syntax validity, Rule evaluation, criterion satisfaction, verification, conformance, compliance and accountable decision remain distinct claims.",
    "Requirement revisions are append-only; supersession never overwrites.",
    "Authoritative Requirement Baseline identity, approval, effectivity, successor lifecycle and mastership are outside WM-REC-006 pending separate reservation review.",
    "RequirementRevisionSetView is a derived non-authoritative view with no identity, authority, effectivity, lifecycle or successor relation.",
    "A revision-set view receives exact Requirement revision, criterion and Rule pins as caller-supplied inputs and computes reproducible digests and diffs only.",
    "A revision-set view pins identities and content digests only; it never freezes satisfaction, verification, waiver, compliance or decision verdicts.",
    "Derived comparison diffs are recomputed from pinned inputs and never stored as authoritative records.",
    "Product/configuration baselines containing design, software, tests or evidence remain externally mastered.",
    "Every contained Trace Link owns exactly one source Requirement revision and pins one external target revision plus asserter and time.",
    "For Requirement-to-Requirement links, only the source owns the Trace Link; the target exposes a derived inbound projection and no mirrored record.",
    "Inbound traces from external masters and trace fabrics queryable without a Requirement endpoint remain external.",
    "A Trace Link never proves implementation, verification or satisfaction by presence alone.",
    "A trace becomes suspect when either endpoint revision changes; it is never silently retargeted.",
    "Task state including Done never proves implementation correctness, criterion satisfaction or Requirement satisfaction.",
    "Satisfaction requires a qualified external test result and evidence pinned to the same Requirement revision.",
    "Absence of evidence is never pass; failed and superseded results remain visible.",
    "Verification does not transfer to a changed revision unless byte-identical scope is explicitly reaffirmed with evidence.",
    "A waiver or exception is an external bounded record and never becomes a silent pass or rewrites Requirement, Rule, result or evidence.",
    "Inter-Requirement conflict identity and lifecycle remain external; resolution references an external issue/case and authority decision, and alternatives are never deleted.",
    "Retirement never cascades deletion to revisions, traces, tests, evidence, waivers, conflicts or decisions.",
    "Contained criterion and Trace Link keys are Requirement-scoped local addresses, never catalogue model identifiers.",
    "Need, feature/design, task, test/result, evidence, waiver, conflict, decision, evaluation and enforcement remain externally mastered.",
    "Access to a contained record or view is the intersection of access to the Requirement revision and every referenced Rule, target, result, evidence, waiver and decision record.",
    "Any redacted revision-set view is marked partial-redacted and cannot be interpreted as complete; withheld identities and counts are not disclosed.",
    "No new public model or runtime identifier is allocated by EM-PRD-03."
  ],
  "holds": [
    "WM-REC-006 has no current canonical specification; this completion remains a held research candidate.",
    "An authoritative Requirement Baseline is an identifier-unassigned independent-boundary candidate pending registry reservation review; WM-REC-006 contains only a derived non-authoritative revision-set view.",
    "Inter-Requirement conflict requires an external issue, case or decision master; no local conflict aggregate is published.",
    "The relation ledger must retire the WM-KNW-013 parent signal and retain a non-owning exact-revision REFERENCE before publication.",
    "Need versus Requirement and WM-ACT-007 work-order acceptance findings require published boundary notes.",
    "WM-KNW-013 and WM-SFT-015 retain their own publication holds and exact-revision joins are unconfirmed.",
    "External task, test, evidence, waiver, conflict and decision masters remain reuse-or-block dependencies.",
    "Trace relation vocabulary, field-level mastership and disclosure constraints require canonical approval.",
    "Package conversion and live HTTP/runtime/search/package verification are pending."
  ],
  "traceRelationTypeAuthority": "Illustrative seed only. Link type never proves satisfaction and cannot become canonical until an approved pinned vocabulary exists."
}
