-record(config, { before_update :: fun((integer(), integer(), list(any())) -> list(any())), movement :: dnd@groups:movement(), listen :: dnd@groups:listen(), operation :: dnd@groups:operation(), groups :: dnd@groups:groups_config(any()), mode :: dnd@groups:input_mode(), touch_timeout_ms :: integer(), touch_scroll_threshold :: integer(), touch_hold_duration_ms :: integer(), touch_drop_cooldown_ms :: integer() }).