Simboli SVG portabili
Comporre e condividere simboli SVG statici con collegamenti Ganter sicuri e morsetti di collegamento tipizzati.
I simboli Ganter tengono separati il disegno e i dati vivi. Il disegno è normale SVG statico. Ganter Lab possiede ogni corrispondenza di valore e ogni animazione, quindi un file importato non può eseguire script, gestori di evento, codice di animazione incorporato o richieste di rete. Questa pagina è il riferimento completo del modello di composizione: che cosa dichiara un simbolo, che cosa l'importazione accetta e rifiuta, e come i simboli viaggiano tra le stazioni.
Un simbolo dichiara tre cose oltre al suo disegno:
- Zone attive, ingressi con nome (riempimento, contorno, movimento, testo, visibilità) che un'istanza posata su una dashboard alimenta poi da un indirizzo di Logic o da un valore fisso.
- Morsetti, punti di collegamento tipizzati sul perimetro, così la dashboard può instradare tubi, condotte, cavi e alberi tra i simboli.
- Suggerimenti, composizioni con altri simboli, facoltative e con la posa dichiarata.
Simboli di sistema e I miei simboli
Il catalogo ha due origini, filtrabili ovunque i simboli siano elencati:
| Origine | Riferimento | Che cos'è |
|---|---|---|
| Sistema | system:<stable-key> |
Le librerie incluse che arrivano con l'applicazione. Ispezionabili ed esportabili, mai modificabili sul posto. |
| Miei | user:<guid> |
I simboli che hai creato, importato o duplicato. Modificabili ed eliminabili. |
Ogni simbolo di sistema offre Duplica in I miei simboli: la copia è una risorsa utente congelata e di tua proprietà (disegno, riquadro di visualizzazione, adattamento, ingombro, zone attive, configurazioni di tipo, morsetti e suggerimenti copiati insieme), così continua a comportarsi come l'hai scelta anche quando un aggiornamento successivo cambia l'originale. Eliminare un simbolo utente chiede conferma; le dashboard che lo referenziano ancora mostrano un segnaposto invece di rompersi.
Modi per creare un simbolo
- Importare un file. Logic > Risorse > Simboli > Importa simbolo accetta un
.svgsemplice o un pacchetto.ganter-symbol.jsoncompleto. Ogni importazione crea una risorsa nuova con una sua identità; non sovrascrive mai un simbolo esistente, e una collisione di nomi si risolve con un suffisso (« 2 », « 3 »…) invece di fallire. Il selettore rifiuta i file oltre 1 MB prima di leggerne i byte. Dopo l'importazione di un SVG semplice l'applicazione riferisce quanti elementi non sicuri ha rimosso, se ce n'erano. - Comporre nell'applicazione. Nuovo simbolo utente apre un editor per il nome, il markup SVG, l'impaginazione sulla dashboard (adattamento e ingombro iniziale) e le zone attive; una volta che il simbolo esiste, le modifiche valide si salvano da sole. La geometria dei morsetti deliberatamente non si modifica nell'applicazione: i morsetti tipizzati possono arrivare solo da un pacchetto, e i morsetti scritti nel pacchetto restano conservati in sola lettura attraverso le modifiche successive.
- Chiedere a un'IA. Due strade condividono esattamente lo stesso contratto. Tramite
l'endpoint MCP integrato, lo strumento
symbol_validateesegue l'importazione a vuoto esymbol_importsalva una nuova risorsa; entrambi portano il contratto completo nelle loro descrizioni. Da una chat esterna che non ha accesso all'applicazione, Copia l'istruzione per la chat nel pannello Simboli copia una richiesta autosufficiente; salva l'SVG o il pacchetto restituito come file e importalo qui.
Vedi Logic per lo spazio di lavoro delle risorse che sta attorno.
Preparare un SVG semplice
Dai un id SVG stabile a ogni parte che vuoi collegare. Dopo l'importazione, quegli id compaiono
nei selettori di destinazione delle zone attive. Gli id e i nomi delle zone attive condividono una
sola grammatica: cominciano con una lettera o _, proseguono con lettere, cifre, _, ., : o
-, e sono lunghi al massimo 128 caratteri.
Gli attributi facoltativi data-ganter-* sono l'unico markup specifico di Ganter che un simbolo può
portare:
| Attributo | Su | Che cosa dichiara |
|---|---|---|
data-ganter-pivot="x y" |
qualunque elemento collegabile | Il punto di rotazione esatto (coordinate del riquadro di visualizzazione) per le zone attive di rotazione, scala e rotazione continua. Obbligatorio sull'elemento di destinazione di quelle tre nature. |
data-ganter-spin-ratio |
un figlio di un elemento che ruota | La velocità relativa di un rotore figlio visibile. Finita, diversa da zero, di modulo al massimo 100; se negativa ruota nel senso opposto. Rimosso se l'elemento non dichiara anche il proprio punto di rotazione. |
data-ganter-role |
qualunque elemento | Un ruolo semantico stabile per gli strumenti di composizione. Solo informativo. |
data-ganter-fit-width |
<text> / <tspan> |
Lettura contenuta, da attivare, per una zona attiva Text: quando il testo collegato misura più di questo numero di unità del riquadro di visualizzazione, il carattere si rimpicciolisce per stare dentro. |
data-ganter-fit-min-font-size |
<text> / <tspan> |
La dimensione di carattere più piccola a cui l'adattamento può scendere. Sotto quella, l'elemento mostra il ripiego mentre il valore intero resta nel nome accessibile e nel suggerimento. |
data-ganter-fit-fallback |
<text> / <tspan> |
Il testo mostrato quando nemmeno la dimensione di carattere minima riesce a contenere il valore. |
I morsetti di collegamento non vivono nell'SVG e non puntano a id di elementi SVG. Gli attributi
chiamati data-ganter-port o data-ganter-port-* non fanno parte del formato: l'importazione di un
SVG semplice li rimuove; un pacchetto severo che li contiene viene respinto.
L'importazione di un SVG semplice dà sempre un simbolo valido solo visivo: zero morsetti, zero zone attive. L'ispettore riferisce che non esiste alcun morsetto collegabile perché ruolo, tipo, direzione esterna e percorso interno non erano dichiarati. Ganter non deduce quei campi dal nome del file, dalla categoria o dal disegno, e non apre alcun editor interno di morsetti o di percorsi.
Che cosa accetta il depuratore
La stessa politica SVG vale per ogni strada (importazione di file, editor nell'applicazione, MCP, pacchetto). È deliberatamente più stretta dell'SVG:
- Conservato: geometria e struttura inerti:
svg,g,defs,symbol,use,path,rect,circle,ellipse,line,polyline,polygon,text,tspan,title,desc,clipPath,mask,linearGradient,radialGradient,stop,pattern,marker, con gli attributi di presentazione (riempimento, contorno, opacità, trasformazione, stile) e le etichette ARIA. - Rimosso o rifiutato:
<script>,<style>,<foreignObject>, i gestori di evento, l'animazione incorporata e qualunque URL esterno odata:/file:/http(s). Sopravvivono solo i riferimenti interniurl(#id)ehref="#id". - Limiti: il markup può essere al massimo di 512 KB e 4096 elementi.
I colori sicuri sono i valori esadecimali, i colori CSS con nome, rgb()/rgba()/hsl()/hsla()
e i token di tema dell'applicazione var(--color-<name>) (per esempio var(--color-success),
var(--color-symbol-off)). I token di tema sono il modo in cui un solo disegno si adatta al chiaro
e allo scuro: fornisci un disegno solo, che referenzia i token, mai due varianti di tema.
Come vengono trattate le violazioni dipende dalla strada: un SVG semplice viene corretto (gli elementi non sicuri sono rimossi e ogni rimozione è segnalata come avviso); un pacchetto è severo e viene respinto nominando le prime violazioni, invece di essere corretto in silenzio.
Pacchetto portabile v2
Esportare un simbolo crea un file .ganter-symbol.json. Ogni campo dell'involucro è obbligatorio; i
tre elenchi del contratto possono essere vuoti ma devono esserci:
| Campo | Requisito |
|---|---|
$schema |
Esattamente https://ganterlab.com/schemas/ganter-symbol-v2.schema.json. |
format |
Esattamente ganter-symbol. |
version |
Esattamente 2. I pacchetti in versione 1 vengono respinti, non passati a un lettore di formato vecchio. |
name |
Il nome visualizzato. Un'importazione può sovrascriverlo, e una collisione riceve un suffisso automatico. |
svg |
SVG statico depurato la cui radice porta un viewBox uguale al campo viewBox. |
viewBox |
minX minY width height: quattro numeri finiti con larghezza e altezza positive. |
fit |
contain, stretch, stretch-x o stretch-y. |
footprint |
{ "width": 1..24, "height": 1..12 }, le celle di dashboard consigliate. |
slots |
Elenco di dichiarazioni di zona attiva (qui sotto). |
typeConfigurations |
Elenco di scelte di tipo condivise tra morsetti (qui sotto). |
terminals |
Elenco di massimo 16 morsetti completi (qui sotto). |
suggestions |
Elenco ordinato di composizioni dichiarate (qui sotto). |
Il JSON Schema pubblico di Ganter symbol v2 convalida
l'involucro di trasporto. L'importatore esegue poi i controlli semantici che il JSON Schema non può
esprimere: l'esistenza delle destinazioni nell'SVG, la geometria del percorso interno, la
compatibilità dei suggerimenti. Un pacchetto è severo su ogni fronte: markup non sicuro, campi
sconosciuti, voci nulle negli elenchi e i vecchi contratti ports[], anchors[], profile e
connectionStyle vengono respinti invece che corretti.
Il pacchetto non contiene mai un indirizzo di stazione, un collegamento di dashboard, una scelta di tipo di una singola istanza, un GUID di database o l'identità di un utente. Una zona attiva che porta un indirizzo di Logic non si può nemmeno esportare: l'indirizzo appartiene all'istanza posata, non al simbolo riutilizzabile.
Dimensione, riquadro di visualizzazione e adattamento
Il riquadro di visualizzazione è lo spazio di coordinate naturale del simbolo. Morsetti e
percorsi interni sono dichiarati al suo interno, e deve corrispondere esattamente al viewBox della
radice SVG; un pacchetto i cui due riquadri non concordano viene respinto. I riquadri non quadrati
sono pienamente supportati, così un nastro trasportatore lungo non deve vivere dentro un quadrato.
Il modo di adattamento dice come il disegno usa il rettangolo di dashboard che l'operatore traccia:
| Adattamento | Comportamento |
|---|---|
contain |
Mantiene le proporzioni; il disegno lascia bande vuote dentro il rettangolo di celle. È il predefinito. |
stretch |
Riempie il rettangolo nei due assi, deformando se serve. |
stretch-x |
Estende in orizzontale, mantiene la proporzione verticale naturale. |
stretch-y |
Estende in verticale, mantiene la proporzione orizzontale naturale. |
L'ingombro è la dimensione iniziale in celle della griglia di dashboard quando il simbolo viene posato la prima volta: larghezza da 1 a 24, altezza da 1 a 12 (l'editor parte da 4 × 4). È un suggerimento, non un vincolo; l'operatore poi ridimensiona liberamente.
Due controlli distinti limitano la dimensione di un'importazione: il selettore di file rifiuta qualunque cosa superi 1 MB prima di leggerla, e il depuratore rifiuta un markup oltre 512 KB o 4096 elementi.
Zone attive: la superficie di collegamento
Una zona attiva dichiara un ingresso: quale elemento comanda, che cosa gli fa e come i valori di ingresso si trasformano in uscita. L'istanza posata sulla dashboard sceglie poi la sorgente di ogni zona attiva (un indirizzo di Logic o un valore fisso); il simbolo in sé non conserva mai una sorgente.
Ogni zona attiva porta:
| Campo | Significato |
|---|---|
name |
Il nome del parametro mostrato a chi compone la dashboard. Grammatica di identificatore descritta sopra; univoco tra le zone attive del simbolo. |
elementId |
L'id di un elemento SVG esistente. Un elemento accetta al massimo una zona attiva per canale, così due zone attive non possono contendersi il riempimento dello stesso elemento. |
kind |
Una delle tredici nature qui sotto. |
inMin, inMax |
L'intervallo di ingresso: i due valori che corrispondono a outMin/outMax. Numeri finiti; usati dalle nature continue e come punto di commutazione da fill/stroke. |
outMin, outMax |
L'intervallo di uscita nell'unità della natura (gradi, unità del riquadro di visualizzazione, 0..1, gradi al secondo). Numeri finiti. |
outMinSecondary, outMaxSecondary |
Secondo asse di uscita facoltativo, solo per translate e scale: l'uscita primaria è X e quella secondaria è Y. O entrambi o nessuno. |
onColor, offColor |
Colori sicuri per fill/stroke (i due stati di commutazione). Per fillColor/strokeColor, onColor è il colore di anteprima dell'ispettore. |
Le tredici nature di zona attiva:
| Natura | Che cosa comanda | Note |
|---|---|---|
rotate |
Ruota l'elemento; l'ingresso si trasforma linearmente in gradi. | La destinazione deve dichiarare data-ganter-pivot. |
opacity |
L'opacità dell'elemento; l'ingresso si trasforma in 0..1. | |
fill |
Dipinge il riempimento con offColor sotto la metà dell'intervallo di ingresso e con onColor a partire da essa. Un ingresso Bool commuta direttamente. |
Punta alle forme riempibili (non a <line>). |
visible |
Mostra o nasconde l'elemento secondo la verità del valore. | |
text |
Sostituisce il contenuto testuale dell'elemento con il valore formattato. | Punta solo a <text>/<tspan>; da combinare con gli attributi data-ganter-fit-* per una lettura contenuta. |
translate |
Sposta l'elemento in unità del riquadro di visualizzazione; l'uscita primaria è X, quella secondaria facoltativa è Y. | |
scale |
Scala l'elemento; l'uscita primaria è X, la secondaria è Y (se omessa, la scala è uniforme). | La destinazione deve dichiarare data-ganter-pivot. |
stroke |
Dipinge il contorno con la stessa regola di soglia di fill. |
|
spin |
Rotazione continua nel tempo; l'ingresso si trasforma in velocità angolare in gradi al secondo. I figli con data-ganter-spin-ratio ruotano insieme al rapporto dichiarato. |
La destinazione deve dichiarare data-ganter-pivot. Il movimento è temporizzato dall'applicazione e indipendente dalle preferenze di animazione del sistema operativo. |
spinEnabled |
Mette in pausa o riprende la zona attiva spin sullo stesso elemento senza nasconderlo. |
Richiede una zona attiva spin che punti allo stesso elemento. |
fillColor |
Imposta il riempimento direttamente dal valore di colore collegato (una risorsa Colore, una variabile Colore o un colore CSS sicuro). | |
strokeColor |
Imposta il contorno direttamente dal valore di colore collegato. | |
strokeWidth |
Imposta direttamente la larghezza del contorno, in unità utente SVG da 0.5 a 32; nessun suffisso di unità e nessun CSS accettati. | Un ingresso non valido, non risolto o di cattiva qualità ripristina lo stroke-width dichiarato; lo stesso fanno l'azzeramento, il rimontaggio e la dismissione. |
Queste zone attive danno stile al disegno; non danno mai stile ai tratti di collegamento delle dashboard, il cui colore e la cui larghezza sono globali per tipo di tratto.
A chi appartiene il collegamento
Il simbolo dichiara i parametri e le scelte di tipo permesse, non le sorgenti vive né la selezione di un'istanza. Dopo aver posato un componente Simbolo, l'operatore associa ogni zona attiva a un indirizzo di Logic o a un valore fisso e sceglie ogni tipo di tratto configurabile su quell'istanza. Quelle scelte restano dentro la stazione e non vengono mai esportate con il simbolo riutilizzabile. Le zone attive non associate restano neutre: l'elemento conserva l'aspetto con cui è stato disegnato.
Posizioni globali e tipi di tratto
Ogni morsetto fa riferimento a una posizione del catalogo fisso di sedici ancoraggi sul perimetro.
Un pacchetto salva solo anchorId; non ripete né sovrascrive mai delle coordinate. Le posizioni,
come frazioni normalizzate del riquadro di visualizzazione:
- in alto:
top-left(0, 0),top-25(0.25, 0),top-50(0.5, 0),top-75(0.75, 0),top-right(1, 0); - a destra:
right-25(1, 0.25),right-50(1, 0.5),right-75(1, 0.75); - in basso, in senso orario:
bottom-right(1, 1),bottom-75(0.75, 1),bottom-50(0.5, 1),bottom-25(0.25, 1),bottom-left(0, 1); - a sinistra, proseguendo in senso orario:
left-75(0, 0.75),left-50(0, 0.5),left-25(0, 0.25).
Queste sono posizioni sul perimetro, non una griglia 5×5. Un simbolo non può aggiungere un'altra posizione né salvare coordinate di ancoraggio proprie.
Gli otto tipi di tratto globali sono liquid, gas, air-duct, electrical, signal,
network, material e mechanical-shaft. Usa Logic > Risorse > Tipi di tratto per configurare
il colore e la larghezza visiva del contorno associati a ogni tipo. Simboli e tratti conservano l'id
stabile del tipo, quindi un cambiamento globale ridisegna ogni percorso che lo usa. Un pacchetto non
copia mai il colore o la larghezza e non ha varianti di percorso piccole, normali o grandi.
Due estremità formano un tratto definito quando si risolvono nello stesso tipo. Il ruolo del morsetto aiuta la composizione e la revisione, ma da solo non vieta una disposizione di rete.
Scelte di tipo condivise
Un simbolo che può lavorare con più di un fluido dichiara una configurazione di tipo condivisa invece di duplicare il proprio disegno:
{
"id": "process-type",
"name": "Process type",
"allowedTypes": ["liquid", "gas"],
"defaultType": "liquid"
}
L'id è una chiave stabile: lettere minuscole e cifre con trattini singoli, che comincia e finisce
con un carattere alfanumerico (le maiuscole vengono rifiutate). allowedTypes non è vuoto e
contiene id di tipo globale univoci; defaultType deve appartenergli; name è obbligatorio. Ogni
morsetto che fa riferimento a process-type segue l'unica scelta fatta sull'istanza posata sulla
dashboard. Una definizione può portare più configurazioni indipendenti, per esempio il fluido di
processo e quello di sfiato, mentre altri morsetti restano fissi.
Morsetti completi
Ogni morsetto collegabile dichiara una posizione globale, un ruolo, esattamente un tipo fisso oppure una configurazione condivisa, una direzione verso l'esterno nell'orientamento originale e un percorso interno di arrivo:
{
"anchorId": "left-50",
"role": "input",
"typeConfiguration": "process-type",
"direction": "west",
"internalPath": [
{ "x": 18, "y": 50 },
{ "x": 36, "y": 50 },
{ "x": 48, "y": 62 }
]
}
Le regole, tutte applicate all'importazione:
- Al massimo 16 morsetti, e ogni id di ancoraggio usato al massimo una volta.
roleèinput,outputobidirectional;directionènorth,east,southowest.- Esattamente uno tra
type(un tipo di tratto globale) etypeConfiguration(l'id di una configurazione dichiarata), mai entrambi, mai nessuno dei due. - L'ancoraggio globale convertito nel riquadro di visualizzazione naturale dell'SVG è l'inizio
implicito di
internalPath; non ripeterlo come primo punto. Le coordinate sono valori assoluti del riquadro, non frazioni normalizzate, e il percorso ha almeno un punto. - Ogni segmento resta dentro il riquadro di visualizzazione, ha lunghezza diversa da zero ed è orizzontale, verticale o esattamente a 45°; due segmenti consecutivi girano al massimo di 90°.
- I morsetti richiedono che l'SVG porti un riquadro di visualizzazione.
La dashboard disegna il percorso interno sotto il disegno dell'apparecchiatura, lo trasforma con il ridimensionamento, la rotazione di un quarto di giro e i ribaltamenti, e mantiene la larghezza visiva del tipo di tratto globale invece di scalarla con il simbolo, così un solo tratto continuo corre dall'interno di un corpo all'interno dell'altro.
Un morsetto è tutto o niente. Un pacchetto severo con un morsetto parziale non è valido; un
pacchetto solo visivo usa invece un elenco terminals vuoto. Nulla viene mai dedotto per riempire
un vuoto.
Suggerimenti ordinati
Un suggerimento registra una composizione voluta, compresa la posa esatta della destinazione:
{
"sourceAnchorId": "right-75",
"targetSymbol": "system:capping-station",
"targetAnchorId": "left-75",
"targetRotationDegrees": 0,
"targetFlipHorizontal": false,
"targetFlipVertical": false,
"connectionType": "material"
}
Convalida: sourceAnchorId deve essere uno dei morsetti di questo simbolo; targetSymbol deve
essere un riferimento qualificato dall'origine, e in un pacchetto portabile può essere solo
system:<stable-key> (un GUID utente ha senso solo dentro la stazione che lo possiede) e deve
nominare un simbolo che esiste nel catalogo di sistema con un morsetto in targetAnchorId; la
rotazione è 0, 90, 180 o 270 e i due contrassegni di ribaltamento sono obbligatori; ogni
suggerimento deve essere univoco. connectionType si può omettere solo quando i tipi fissi uguali
alle due estremità risolvono la situazione senza ambiguità; è obbligatorio quando una delle due
estremità è configurabile, e allora deve essere ammesso da entrambe.
I suggerimenti hanno un verso e l'ordine dell'elenco stabilisce la priorità, ma non sono mai un
elenco di permessi per i tratti ordinari della dashboard. Con un elenco suggestions vuoto
l'ispettore riferisce che non esiste alcuna composizione suggerita, invece di inventarsi un partner
di catalogo.
Che cosa rifiuta l'importazione
Un elenco rapido dei rifiuti, così un'importazione fallita si legge invece di doverla indovinare.
Per un SVG semplice vale solo il primo gruppo, e al suo interno rifiutano l'importazione solo i
limiti di dimensione, l'XML malformato e la mancanza della radice <svg>: il markup non ammesso
viene invece corretto con un avviso. Per un pacchetto, tutto quello che segue è un rifiuto netto.
Disegno
- Un file oltre 1 MB, un markup oltre 512 KB, o più di 4096 elementi.
- XML malformato, o una radice che non è un
<svg>depurato. - In un pacchetto: qualunque markup che l'elenco delle cose ammesse avrebbe dovuto rimuovere (script, gestori di evento, riferimenti esterni, elementi o attributi non ammessi).
- Un
viewBoxche non sia quattro numeri finiti con larghezza e altezza positive, o che differisca da quello della radice SVG; un pacchetto senza alcun riquadro di visualizzazione alla radice.
Involucro
- Uno schema, un formato o una versione diversi dal contratto v2; campi sconosciuti in qualunque
punto; un
name, unfit, unfootprinto uno dei tre elenchi mancante; una voce nulla dentro un elenco. - Un
fitfuori dai quattro modi; un ingombro fuori da 1..24 × 1..12.
Zone attive
- Un nome o un id di elemento fuori dalla grammatica degli identificatori; un nome di zona attiva
duplicato; un id di destinazione che l'SVG non contiene; una natura che l'elemento di destinazione
non può accettare (testo su un elemento non testuale, riempimento su una
<line>). - Una zona attiva
rotate,spinoscalela cui destinazione non ha undata-ganter-pivotfinito; una zona attivaspinEnabledsenza una zona attivaspinsullo stesso elemento. - Due zone attive sullo stesso canale di un elemento. Ogni natura è un canale a sé, salvo che
fillefillColorcondividono il canale del riempimento estrokeestrokeColorquello del contorno, quindi un elemento non può prendere due rotazioni più di quanto possa prendere due riempimenti. - Numeri di intervallo non finiti; un'uscita secondaria con una sola estremità, o su una natura
diversa da
translate/scale; un colore non sicuro; una zona attiva che porta un indirizzo di Logic.
Collegamenti
- Più di 16 morsetti; un id di ancoraggio ripetuto o sconosciuto; un morsetto con entrambi o con
nessuno tra
typeetypeConfiguration; un id di tipo o di configurazione sconosciuto; un percorso interno non valido (fuori dal riquadro di visualizzazione, segmenti di lunghezza zero o con angoli non ammessi, una svolta oltre 90°). - Una configurazione di tipo con un id non valido, senza nome, con tipi ammessi duplicati o sconosciuti, oppure con un valore predefinito fuori dal proprio elenco.
- Un suggerimento il cui morsetto di partenza non esiste, la cui destinazione non è un simbolo di sistema con il morsetto nominato, la cui posa non è un quarto di giro, o il cui tipo di tratto non è accettato da entrambe le estremità.
symbol_validate sull'endpoint MCP esegue esattamente questa importazione a vuoto e
riferisce ogni errore, avviso e nota senza salvare nulla.
Impacchettare e condividere
Esporta pacchetto (disponibile allo stesso modo per i simboli di sistema e per i tuoi) scarica
<name>.ganter-symbol.json con il disegno depurato e il contratto completo: $schema,
format, version, name, svg, viewBox, fit, footprint, slots[],
typeConfigurations[], terminals[] e suggestions[], con i tre elenchi di collegamento
presenti anche quando sono vuoti.
Che cosa non viaggia mai: gli indirizzi di stazione, le scelte di tipo delle singole istanze,
l'identità nel database, l'identità dell'utente, e i colori e le larghezze dei tipi di tratto della
stazione.
Sulla stazione che riceve, lo stesso file passa da Importa simbolo (o da symbol_import via
MCP) e arriva come nuovo simbolo utente, morsetti compresi. Poiché l'identità del tipo è un id
stabile e l'aspetto è globale, i percorsi di un simbolo importato seguono subito lo stile dei tipi
di tratto della stazione che lo riceve.