ScheduleMisfired
data class ScheduleMisfired(val scheduleId: String, val kind: String, val at: Instant, val missedFires: Int, val policy: MisfirePolicy, val emitted: Int) : JobEvent
A recurring schedule came due later than its misfire threshold allowed. There is no per-run job id here because a misfire is a schedule-level fact: with MisfirePolicy.Skip no run exists at all. missedFires counts the fire times inside the missed window; emitted is how many runs the policy actually produced (0 for Skip, 1 for FireOnce, up to atMost for CatchUp).