def METHOD_NAME(topic: str, payload: str, section: str, srv: Service) -> bool:
    """
    mqttwarn filter function to only use `new` and important `update` Frigate events.
    Additionally, validate more details within the event message,
    specifically the `after` section. For example, skip false positives.
    :return: True if message should be filtered, i.e. notification should be skipped.
    """
    try:
        message = json.loads(payload)
    except json.JSONDecodeError as e:
        srv.logging.warning(f"Can't parse Frigate event message: {e}")
        return True
    # ignore ending messages
    message_type = message.get("type")
    if message_type == "end":
        srv.logging.warning(f"Frigate event skipped, ignoring Message type '{message_type}'")
        return True
    # payload must have 'after' key
    elif "after" not in message:
        srv.logging.warning("Frigate event skipped, 'after' missing from payload")
        return True
    after = message.get("after")
    nonempty_fields = ["false_positive", "camera", "label", "current_zones", "entered_zones", "frame_time"]
    for field in nonempty_fields:
        # Validate field exists.
        if field not in after:
            srv.logging.warning(f"Frigate event skipped, missing field: {field}")
            return True
        value = after.get(field)
        # We can ignore if `current_zones` is empty.
        if field == "current_zones":
            continue
        # Check if it's a false positive.
        if field == "false_positive":
            if value is True:
                srv.logging.warning("Frigate event skipped, it is a false positive")
                return True
            else:
                continue
        # All other keys should be present and have values.
        if not value:
            srv.logging.warning(f"Frigate event skipped, field is empty: {field}")
            return True
    # Ignore unimportant `update` events.
    before = message.get("before")
    if message_type == "update" and isinstance(before, dict):
        if before.get("stationary") is True and after.get("stationary") is True:
            srv.logging.warning("Frigate event skipped, object is stationary")
            return True
        elif after["current_zones"] == after["entered_zones"] or (
            before["current_zones"] == after["current_zones"] and before["entered_zones"] == after["entered_zones"]
        ):
            srv.logging.warning("Frigate event skipped, object stayed within same zone")
            return True
    # Evaluate optional skip rules.
    context: RuntimeContext = srv.mwcore["context"]
    frigate_skip_rules = context.config.getdict(section, "frigate_skip_rules")
    for rule in frigate_skip_rules.values():
        do_skip = True
        for field_name, skip_values in rule.items():
            actual_value = after[field_name]
            if isinstance(actual_value, list):
                do_skip = do_skip and all(value in skip_values for value in actual_value)
            else:
                do_skip = do_skip and actual_value in skip_values
        if do_skip:
            srv.logging.warning("Frigate event skipped, object did not enter zone of interest")
            return True
    return False