Events and Shards:
Short rest → +1 shard
Long rest → +8 shards
Other events → add shards or moments per event type
Shard Overflow:
If Shard > ShardsPerDay → subtract ShardsPerDay from Shard, increment Weekday
Update DayPhase based on Shard using DayPhases mapping
Weekday Overflow:
If Weekday index > length of DaysOfWeek → reset to first day, increment DaysPassed
Month Overflow:
If DaysPassed > DaysPerMonth → reset DaysPassed = 1, increment Month (use MonthsOfYear index)
Year Overflow:
If Month index > length of MonthsOfYear → reset Month = first month, increment Year