{
  "format": "vercy-model-allocation-fixtures/v1",
  "contourId": "EM-PEO-02",
  "candidateRevision": 3,
  "declarative": true,
  "fixturesExecuted": false,
  "proposedName": "Employee Profile",
  "caseCount": 46,
  "cases": [
    {
      "id": "dual-employment",
      "kind": "positive",
      "input": "One Person is concurrently employed by two legal employers.",
      "expect": "Two Employment records and two employer-scoped EmployeeProfiles reference one Person; employee numbers never merge across employers.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "parallel-contract-same-employer",
      "kind": "positive",
      "input": "One Person has two concurrent governed contracts with one employer.",
      "expect": "One EmployeeProfile references two distinct Employment records and any concurrent Assignments resolve to one explicit context each.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "agency-labor",
      "kind": "positive",
      "input": "A staffing supplier legally employs a worker placed at a work customer.",
      "expect": "Employer, supplier, host and work customer roles remain explicit; the host Assignment resolves to the supplier Employment.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "freelancer-misclassification",
      "kind": "negative",
      "input": "A profile category says freelancer although control and integration evidence conflict.",
      "expect": "The label cannot establish status; sourced assertions, competent determination and dispute history remain visible.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "rehire",
      "kind": "positive",
      "input": "A separated worker returns to the same employer.",
      "expect": "The same Person and EmployeeProfile are reused, a new Employment and Assignment are created, and number reuse follows scheme policy.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "new-employer",
      "kind": "positive",
      "input": "A Person changes legal employer without evidenced succession.",
      "expect": "A new employer-scoped EmployeeProfile and Employment are created while Person identity is unchanged.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "employer-succession",
      "kind": "positive",
      "input": "A legal succession decision preserves employment continuity.",
      "expect": "The Employment relationship may continue with explicit succession evidence; the event is not silently treated as rehire.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "assignment-host-change",
      "kind": "positive",
      "input": "The worker moves to a materially different host.",
      "expect": "A new Assignment is created; Person, EmployeeProfile and Employment are preserved.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "ordinary-amendment",
      "kind": "positive",
      "input": "FTE and reporting line change without material post, host, scope or authority change.",
      "expect": "An effective-dated amendment preserves Employment and Assignment identity.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "record-correction",
      "kind": "positive",
      "input": "A previously recorded title is corrected without a real-world event.",
      "expect": "Record versioning corrects provenance without inventing a lifecycle transition.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "incomplete-offboarding",
      "kind": "negative",
      "input": "Employment and JML case are closed but two access outcomes remain unverified.",
      "expect": "Employment may be inactive while access obligations remain open; revocation and completion are not inferred.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "profile-proves-status",
      "kind": "negative",
      "input": "A consumer treats EmployeeProfile existence as employee status.",
      "expect": "The assertion is rejected because status belongs to sourced, qualified Employment determinations.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "employee-number-person-key",
      "kind": "negative",
      "input": "Two employers issue the same employee number and a consumer merges the people.",
      "expect": "The merge is rejected because number scope includes employer, scheme and validity.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "number-reuse-overlap",
      "kind": "negative",
      "input": "One scheme reissues a number while an earlier binding is still valid.",
      "expect": "Validation fails unless the scheme and non-overlapping validity permit reuse.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "history-delete",
      "kind": "negative",
      "input": "Rehire processing attempts to overwrite the former Employment and number binding.",
      "expect": "The write is rejected; predecessor history remains resolvable.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "assignment-without-context",
      "kind": "negative",
      "input": "A Work Assignment lacks an Employment or engagement context.",
      "expect": "The Assignment is invalid for this profile.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "case-closure-as-revocation",
      "kind": "negative",
      "input": "A closed offboarding case is used as proof of access revocation.",
      "expect": "The claim fails without independently verified access-authority evidence.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "candidate-id-invention",
      "kind": "negative",
      "input": "A generator assigns an EmployeeProfile model ID without registry allocation.",
      "expect": "Generation fails closed and the candidate remains identifier-unassigned.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "duplicate-profile-same-employer",
      "kind": "negative",
      "input": "A second open profile is requested for the same Person and employer.",
      "expect": "A conforming validator must reject it and preserve the existing profile, links and number history.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "employer-ref-unresolvable",
      "kind": "negative",
      "input": "employerRef resolves to a unit or payroll code.",
      "expect": "A conforming validator must reject the profile before number-scope evaluation.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "role-ownership-unresolved",
      "kind": "negative",
      "input": "A staffing supplier is stored as free text without an owning master.",
      "expect": "The non-collapse claim must remain held and the free-text value must not count as evidence.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "person-merge-downstream",
      "kind": "negative",
      "input": "A Person merge attempts to rewrite personRef in place.",
      "expect": "A conforming implementation must preserve both histories and require evidenced profile succession.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "name-as-status-evidence",
      "kind": "negative",
      "input": "A consumer cites EmployeeProfile's name as proof of employee status.",
      "expect": "The claim must be rejected; only a qualified determination can answer status.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "engagement-forced-into-employment",
      "kind": "negative",
      "input": "A contractor relationship is typed as employment only to satisfy a reference.",
      "expect": "The write must be rejected; relationshipKind must preserve the governed WM-ORG-005 type.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "correction-preserves-valid-time",
      "kind": "positive",
      "input": "A recorded fact is corrected without real-world change.",
      "expect": "A new correction version must retain valid time, advance record time and keep the prior version readable.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "withdrawn-version-retention",
      "kind": "negative",
      "input": "Withdrawal requests deletion of the prior version.",
      "expect": "Deletion must be rejected; the version and reason remain resolvable.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "overlapping-active-versions",
      "kind": "negative",
      "input": "Two active versions overlap in valid time in one record-time slice.",
      "expect": "A conforming validator must reject the overlap.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "void-erroneous-number",
      "kind": "positive",
      "input": "A number was issued in error.",
      "expect": "A voided binding must remain readable, not occupy uniqueness, and not imply prior possession.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "closed-profile-number-lookup",
      "kind": "positive",
      "input": "A historical query addresses a number from a closed profile.",
      "expect": "The binding must resolve for instants inside its validity interval.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "pre-hire-profile",
      "kind": "positive",
      "input": "A proposed profile has no relationship link.",
      "expect": "The profile is valid and yields no Employment rather than an employee-status assertion.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "employment-linked-once",
      "kind": "negative",
      "input": "One relationship is linked to two profiles at overlapping valid time without succession evidence.",
      "expect": "A conforming validator must reject the second link.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "succession-splits-profile-not-employment",
      "kind": "positive",
      "input": "Evidenced employer succession preserves one Employment.",
      "expect": "The predecessor profile is superseded, a successor profile opens, the link transfers by dated evidence and histories remain readable.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "succession-cross-person",
      "kind": "negative",
      "input": "successorRef targets a different Person.",
      "expect": "A conforming validator must reject the succession.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "rehire-reactivates-closed-profile",
      "kind": "positive",
      "input": "A former worker is rehired by the same employer.",
      "expect": "The closed profile may reactivate with a new link while prior relationship and number history remain unchanged.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "inherited-obligation-not-locally-enforced",
      "kind": "negative",
      "input": "This package claims it validates Assignment context locally.",
      "expect": "The claim must be rejected and referred to WM-ORG-016 with inherited holds.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "category-without-determination",
      "kind": "negative",
      "input": "A statutory category assertion lacks determinationRef.",
      "expect": "It must be rejected; an internal-reporting assertion may remain explicitly non-determinative.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "concurrent-mixed-classification",
      "kind": "positive",
      "input": "One profile links concurrent employee and contractor relationships.",
      "expect": "Each category assertion must reference exactly one relationship and queries must not bleed across them.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "amendment-preserves-category",
      "kind": "positive",
      "input": "An FTE amendment creates a new profile version.",
      "expect": "The independent category assertion must remain unchanged and singly sourced.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "dispute-visibility",
      "kind": "positive",
      "input": "A classification determination is overturned.",
      "expect": "The original and overturning records must remain readable with resolved-overturned state.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "scheme-without-reuse-policy",
      "kind": "negative",
      "input": "A number scheme declares no reuse policy.",
      "expect": "Issuance must fail closed.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "binding-employer-mismatch",
      "kind": "negative",
      "input": "A binding scope differs from its profile employer.",
      "expect": "It must be rejected before uniqueness evaluation.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "closure-blocked-by-unverified-access",
      "kind": "negative",
      "input": "Profile closure is requested with unverified access outcomes.",
      "expect": "Closure must fail; dormant is permitted and obligations remain open.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "profile-inactive-not-terminated",
      "kind": "negative",
      "input": "A consumer reads dormant profile as proof of terminated Employment.",
      "expect": "The inference must be rejected; Employment is authoritative.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "governance-hold-not-instance-rule",
      "kind": "negative",
      "input": "A generator emits registry holds as instance validation.",
      "expect": "The generated instance rules must exclude governance holds.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "unsourced-dependency-hold",
      "kind": "negative",
      "input": "A dependent rule is reported as passed using an unpinned neighbor claim.",
      "expect": "The result must be held, not passed.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "execution-claim-check",
      "kind": "negative",
      "input": "A report calls the declarative cases passing tests.",
      "expect": "The report must be rejected while fixturesExecuted is false.",
      "fixturesExecuted": false,
      "expectationOnly": true
    }
  ]
}
