{
  "format": "vercy-enterprise-profile-candidate/v1",
  "contourId": "EM-PEO-02",
  "candidateRevision": 3,
  "name": "Work Relations and Assignments",
  "decision": "PROFILE",
  "newRuntimeId": false,
  "bases": [
    "WM-PER-001",
    "WM-ORG-005",
    "WM-ORG-016"
  ],
  "referencedNeighbors": [
    "WM-ACT-040",
    "EM-RSK-03",
    "EM-OPS-01",
    "EM-XCT-01"
  ],
  "profileTypes": [
    "PersonReference",
    "EmploymentRelationshipProfile",
    "WorkAssignmentReference"
  ],
  "unassignedCandidates": [
    "EmployeeProfile"
  ],
  "rejectedNewMasters": [
    "Engagement",
    "LifecycleEvent",
    "JoinerMoverLeaverCase"
  ],
  "constraints": [
    "At most one open EmployeeProfile exists for one personRef and one employerRef; remediation uses evidenced succession, never an unlinked duplicate.",
    "employerRef resolves to an employing legal party, never an org unit, brand, payroll code, site or free text.",
    "personRef is immutable; Person merge or split creates evidenced profile succession and never an in-place rewrite.",
    "EmployeeProfile is a status-neutral administrative label and never proves employment or legal classification.",
    "A profile version is bitemporal; corrections retain valid time and advance record time, while amendments advance valid time.",
    "Withdrawn versions remain resolvable with digest, record interval and withdrawal reason.",
    "Active versions use non-overlapping half-open valid intervals within one record-time slice.",
    "A ProfileEmploymentLink may be absent; profile existence therefore implies no relationship or status.",
    "Each ProfileEmploymentLink names one typed WM-ORG-005 relationship and carries its own valid and record intervals.",
    "One relationship links to exactly one profile at an instant, except during evidenced legal succession.",
    "Evidenced employer succession creates a same-Person successor profile and dated link transfer while preserving the Employment relationship.",
    "successorRef targets a profile with the same personRef and requires successionReason plus successionEvidenceRef.",
    "A closed profile may reactivate only on evidenced rehire; a superseded profile never reactivates.",
    "Employee numbers are unique on employerRef, numberSchemeRef and number over non-overlapping half-open validity intervals; voided bindings are excluded.",
    "Number policy comes from the scheme; issuance fails when no reuse policy exists and records the applied policy version.",
    "A number binding derives employer scope from its profile and can never name or imply a different employer.",
    "Voided number bindings remain resolvable and never imply that the number was held.",
    "Profile closure closes but never deletes open number bindings; historical lookup remains possible.",
    "Administrative category assertions qualify exactly one relationship and never the profile as a whole.",
    "Legal or statutory category assertions require a competent determinationRef; internal assertions are explicitly non-determinative.",
    "Category assertions have governed purpose and jurisdiction schemes plus visible dispute state and append-only overturn history.",
    "Profile amendments never duplicate or silently retarget independent category assertions.",
    "Profile closure is forbidden while required accessVerificationOutcomeRefs are absent or unverified; dormant is permitted.",
    "Profile state never substitutes for Employment, Assignment, JML or access-authority state.",
    "Closed, dormant, withdrawn, voided and superseded records remain historically resolvable.",
    "No model or runtime identifier is assigned until registry allocation; newRuntimeId false means none is allocated in this checkpoint."
  ],
  "newRuntimeIdGloss": "No runtime identifier is allocated in this checkpoint; a future standalone model requires registry allocation first.",
  "localInvariantIds": [
    "L01",
    "L02",
    "L03",
    "L04",
    "L05",
    "L06",
    "L07",
    "L08",
    "L09",
    "L10",
    "L11",
    "L12",
    "L13",
    "L14",
    "L15",
    "L16",
    "L17",
    "L18",
    "L19",
    "L20",
    "L21",
    "L22",
    "L23",
    "L24",
    "L25",
    "L26"
  ],
  "inheritedObligationIds": [
    "I01",
    "I02",
    "I03",
    "I04",
    "I05",
    "I06",
    "I07",
    "I08",
    "I09"
  ],
  "publicationHeld": true,
  "decisionQualifier": "with identifier-unassigned EmployeeProfile new-model candidate"
}
