def METHOD_NAME(
    event_data: NodeData, sdk_crash_detector: SDKCrashDetector
) -> Mapping[str, Any]:
    """
    This method keeps only properties based on the ALLOW_LIST. For frames, both the allow list applies,
    and the method only keeps SDK frames and system library frames.
    """
    frames = get_path(event_data, "exception", "values", -1, "stacktrace", "frames")
    if not frames:
        return {}
    # We strip the frames first because applying the allowlist removes fields that are needed
    # for deciding wether to keep a frame or not.
    stripped_frames = _strip_frames(frames, sdk_crash_detector)
    event_data_copy = dict(event_data)
    event_data_copy["exception"]["values"][0]["stacktrace"]["frames"] = stripped_frames
    stripped_event_data = _strip_event_data_with_allowlist(event_data_copy, EVENT_DATA_ALLOWLIST)
    if not stripped_event_data:
        return {}
    return stripped_event_data