{
  "format": "vercy-enterprise-profile-candidate/v1",
  "contourId": "EM-PEO-07",
  "name": "Enterprise Work Calendar and Availability",
  "decision": "PROFILE",
  "newRuntimeId": false,
  "bases": [
    "WM-XCT-009",
    "WM-ORG-005",
    "WM-ORG-016"
  ],
  "constraints": [
    "Work Calendar profiles WM-XCT-009 with pinned employment, assignment and organizational inputs.",
    "Availability is a derived projection with a complete input manifest and never a mastered person fact.",
    "Contracted, planned available, allocated and actual time remain separate quantities.",
    "Nominal working duration and exact elapsed duration never substitute for each other.",
    "DST gaps and overlaps use explicit timezone and ruleset policy.",
    "Overcommitment is a finding over allocations and never rewrites source assignments.",
    "WM-ACT-008 and WM-PER-001 are reference-only; this profile never constrains, extends, redefines or re-masters them.",
    "plannedAvailability = (contractualPattern ∩ workCalendarWorkingTime) − approvedOrdinaryAbsence, evaluated against the pinned manifest.",
    "allocationResidual = contractedCapacityFraction − Σ(assignmentAllocationFraction) over concurrent assignments in the period.",
    "residualFraction is published only when allocationResidual ≥ 0; it is never published negative and never clamped silently.",
    "When allocationResidual < 0 the projection publishes residualFraction 0 together with an overcommitment finding carrying excessFraction = −allocationResidual, and leaves every source assignment, absence and worklog unchanged.",
    "No worklog, timesheet or approval is an input to plannedAvailability or allocationResidual.",
    "A nominal duration is never rewritten to equal an exact duration and an exact duration is never rewritten to equal a nominal duration; a transition day carries 23 or 25 exact hours with its nominal day unchanged.",
    "A projection missing any manifest element is not published.",
    "An earlier projection is never re-derived in place; a new computation is a new runId."
  ],
  "references": [
    {
      "target": "WM-ACT-008",
      "purpose": "Scheduled intent, reference-only"
    },
    {
      "target": "WM-PER-001",
      "purpose": "Person anchor, reference-only"
    }
  ],
  "canonicalPublishable": false,
  "projections": {
    "WorkCalendarProjection": {
      "identity": [
        "runId"
      ],
      "required": [
        "computedAt",
        "tzdbRelease",
        "calendarRuleSetRelease",
        "organizationalScopeRef",
        "periodRef",
        "patternRef",
        "absenceSetDigest",
        "allocationSetDigest",
        "policyRef"
      ]
    },
    "AvailabilityProjection": {
      "identity": [
        "runId"
      ],
      "required": [
        "computedAt",
        "tzdbRelease",
        "calendarRuleSetRelease",
        "organizationalScopeRef",
        "periodRef",
        "patternRef",
        "absenceSetDigest",
        "allocationSetDigest",
        "policyRef"
      ]
    }
  },
  "holds": [
    "Registry allocation for Absence, Worklog and Timesheet remains pending.",
    "WM-ACT-008 is non-canonical and reference-only; base pins, relation approvals and crosswalks remain pending."
  ]
}
