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
return qry.scalar()
    @classmethod
    def get_serialized_fields(cls):
        """Stringified DAGs and operators contain exactly these fields."""
        if not cls.__serialized_fields:
            cls.__serialized_fields = frozenset(vars(DAG(dag_id='test')).keys()) - {
                'parent_dag',
                '_old_context_manager_dags',
                'safe_dag_id',
                'last_loaded',
                'user_defined_filters',
                'user_defined_macros',
                'partial',
                'params',
                '_pickle_id',
                '_log',
                'is_subdag',
                'task_dict',
                'template_searchpath',
                'sla_miss_callback',
                'on_success_callback',
                'on_failure_callback',
                'template_undefined',
                'jinja_environment_kwargs',
                
                'has_on_success_callback',
                'has_on_failure_callback',
            }
        return cls.__serialized_fields
    def get_edge_info(self, upstream_task_id: str, downstream_task_id: str) -> EdgeInfoType: