# Spec: labor-write ## PUT /api/time-entries MUST replicate `addFromCalendar` + `Time::_insert`: rounding 0/0.5/1, daily limits, upsert, duration=0 delete, cache invalidation. ## PUT /api/absences MUST replicate `setAbsence` + `Absence::afterUadd`: upsert absence, type=0 delete, type!=0 delete work hours for day. ## PUT /api/absences/range MUST replicate `Absence::setDays`. ## GET /api/time-calendar MUST replicate `getTimeTable` response shape including `can_edit`. ## Identity MUST require `X-Acting-Emp-Id`; `emp_id` defaults to acting.