The channels the JOB asked for. Acts as a ceiling, never an escalation.
Subject/body/priority, formatted by the job's own plugin via FormatNotification.
OptionalProviderThe provider the job ran under. Threaded rather than resolved globally so a server hosting more than one connection notifies through the same one the job read its data from.
Who hears about it — the job's NotifyUser, or its owner.
OptionalScheduledDeep-link context, so clicking the notification lands on the job that produced it.
OptionalScheduled
Everything needed to deliver one job's completion notice.