# SVG Optimize Workflow

Workflow minimo per ottimizzare SVG esistenti in modo non distruttivo.

## Input attesi

Accetta uno dei seguenti input:

- path a file `.svg` leggibile;
- blocco SVG inline completo (dal tag `<svg ...>` a `</svg>`).

Se sono presenti entrambi, il path file e' la sorgente primaria salvo richiesta esplicita contraria.

## Passi di pulizia/ottimizzazione non distruttiva

1. **Parse iniziale**
   - verifica struttura XML/SVG di base;
   - interrompi e segnala errore se il parsing fallisce.

2. **Pulizia metadati non essenziali**
   - rimuovi metadata/commenti superflui non funzionali al rendering;
   - conserva informazioni dichiarate come vincolanti dall'utente.

3. **Normalizzazione attributi**
   - normalizza ordine/formatting attributi per leggibilita' e diff puliti;
   - riduci spaziature e valori ridondanti dove non altera la resa.

4. **Ottimizzazione sicura di path e gruppi**
   - semplifica dati duplicati o wrapper inutili (`<g>` annidati senza effetto);
   - evita trasformazioni geometriche aggressive o riscritture che possano cambiare il rendering.

5. **Controllo finale di equivalenza base**
   - verifica che elementi e attributi core restino coerenti;
   - se c'e' rischio regressione visiva, mantieni la versione piu' conservativa.

## Output atteso

Restituisci sempre:

1. **SVG ottimizzato** (testo completo pronto all'uso).
2. **Breve report modifiche** con:
   - interventi applicati;
   - interventi evitati per sicurezza;
   - eventuali limiti residui.

## Fallback

- Se non e' possibile garantire non-distruttivita', non applicare ottimizzazioni invasive e dichiarare il motivo.
- Se input parziale/non valido, richiedere il minimo necessario prima di proseguire.
