/** Декодирует %20 и т.п. в путях Foundry; безопасен для уже декодированных строк. */ export function decodeFoundryAssetPath(foundryPath: string): string { const trimmed = foundryPath.trim().replace(/\\/gu, '/').replace(/^\/+/u, ''); if (!trimmed) return ''; if (/^https?:\/\//iu.test(trimmed)) return trimmed; try { return decodeURIComponent(trimmed); } catch { return trimmed; } }