CAD Tools Italiano 2.0 - SPECIFICA GATE SICUREZZA COMANDI

Baseline: golden 1.9 congelata.
Obiettivo: nessun comando pubblico deve lasciare "; errore: La funzione è stata annullata" dopo ESC.

RISULTATO AUDIT 1.9
- Core funzionale: 93 comandi.
- 83/93 passano direttamente da cti:run.
- 1/93 (CTI_SELEZIONERAPIDA) delega a un entrypoint già protetto.
- 9/93 non passano dal wrapper centrale e saranno migrati obbligatoriamente in 2.0:
  CTI_MODALITACONTATTO, CTI_CHIUDIVELOCE, CTI_RIPRISTINADISEGNO, CTI_ESCLUDIINCROCIO, CTI_ESCLUDIPOLIGONOINCROCIO, CTI_ESCLUDILINEA, CTI_ESCLUDIPRECEDENTE, CTI_ESCLUDIFINESTRA, CTI_ESCLUDIPOLIGONOFINESTRA
- Community MIT 1.9: 12/12 passano da cti19:esegui-comando.
- Strumenti Andrea grezzi: 5/5 saranno migrati al wrapper 2.0 prima dell'esposizione pubblica.

ARCHITETTURA 2.0
1. Un unico wrapper pubblico: cti2:esegui-comando.
2. Il wrapper installa un *error* locale, riconosce ESC/Cancel/Annulla/Quit/Abort/Break e non stampa errori per annullamento volontario.
3. Gli errori reali restano visibili con nome del comando.
4. Ogni comando apre e chiude un singolo UndoMark quando il documento lo consente.
5. Ogni comando può registrare cleanup obbligatori (variabili di sistema, file temporanei, oggetti temporanei).
6. Gli alias devono soltanto delegare a un entrypoint CTI protetto.
7. Nessun c:CTI_* funzionale può invocare direttamente getpoint/getreal/getstring/ssget/entsel/command senza passare dal wrapper.
8. Il validatore blocca la build se trova entrypoint non protetti.
9. Il validatore controlla anche setvar temporanei: i comandi che li usano devono registrarne il ripristino nel cleanup stack.
10. CTI_DIAGNOSTICA 2.0 mostrerà: entrypoint protetti / totali, alias conformi, cleanup registrati e moduli caricati.

POLITICA TEST
- Non viene richiesto all'utente di premere ESC su ogni comando.
- Il collaudo manuale finale usa un campione rappresentativo per categoria e i comandi più distruttivi/complessi.
- La copertura statica del wrapper è 100% obbligatoria prima della build.
