Reverse mapping of rhf2rrstack: rrstack → RHF UI shape.
Converts epoch clamps (starts/ends) to Date objects in the rule timezone
using epochToWallDate, preserving wall time semantics.
Restores 'span' when rrstack freq is undefined.
Maps numeric arrays back to tolerant CSV text for byhour/byminute/bymonthday.
Keeps array options (bymonth/byweekday/bysetpos) as number[] or undefined.
Optional endDatesInclusive reversal:
• When true and an rrstack ends falls exactly at local midnight, subtract
one calendar day so the UI reflects the original end date (date-only).
Reverse mapping of rhf2rrstack: rrstack → RHF UI shape.
ends
falls exactly at local midnight, subtract one calendar day so the UI reflects the original end date (date-only).