pub(super) fn use_draft_protection<T: Clone + PartialEq + Serialize + DeserializeOwned + 'static>( slot: String, current: Signal<T>, dirty: impl Fn() -> bool + Copy + 'static, ) -> (Signal<Option<T>>, Signal<bool>)