pub(crate) async fn scan_unified(
app: AppHandle,
audio_custom_roots: Option<Vec<String>>,
audio_exclude_paths: Option<Vec<String>>,
daw_custom_roots: Option<Vec<String>>,
daw_exclude_paths: Option<Vec<String>>,
daw_include_backups: Option<bool>,
preset_custom_roots: Option<Vec<String>>,
preset_exclude_paths: Option<Vec<String>>,
pdf_custom_roots: Option<Vec<String>>,
pdf_exclude_paths: Option<Vec<String>>,
) -> Result<Value, String>