I couldn't find any official documentation specifying what each parameter to a `sla_miss_callback` callable are. This would be a great addition to know how to properly format the messages sent.
airflow/models/dag.py
start_dates = [t.start_date for t in self.tasks if t.start_date]
        if self.start_date is not None:
            start_dates.append(self.start_date)
        if start_dates:
            earliest = timezone.coerce_datetime(min(start_dates))
        else:
            earliest = None
        end_dates = [t.end_date for t in self.tasks if t.end_date]
        if self.end_date is not None:
            end_dates.append(self.end_date)
        if end_dates:
            latest = timezone.coerce_datetime(max(end_dates))
        else:
            latest = None
        return TimeRestriction(earliest, latest, self.catchup)
    def iter_dagrun_infos_between(