beim expand und pack node habe ich mir eigentlich auch vorgestellt, dass man sich eine struct variable auswählt und automatisch die felder erzeugt werden. wir können das so lassen wie es ist (eigene felder definieren), aber eine helfer auswahl von structs das die felder erstellt wäre gut. --- **Umgesetzt (2026-09-10).** `From variable ▾` steht in der Kopfzeile des Port-Editors neben `+ Field ▾`; das Menü listet die Struct-Variablen des Behaviors und legt deren Felder als Ports an. Drei Entscheidungen, die die Notiz offen ließ: - **Es ergänzt nur, es schreibt nichts um.** Ein Feld, das der Node schon deklariert, bleibt stehen – es könnte eine Kante tragen. Ist nichts mehr zu ergänzen, ist der Eintrag deaktiviert. - **Eine Liste aus Structs zählt mit** (`shapes (item)`): sie deklariert die Form *jedes Items*, also genau das Bündel, das ein `Pack` für sie baut. - **Ein Color-Feld wird ein Zahlport.** `FIELD_KINDS` ist *keine* Teilmenge von `DECLARED_PORT_KINDS` – der Graph kennt keine Farbe, im Wertemodell ist sie eine Zahl. Zwei Fallen unterwegs, beide gemessen: `AddPortCommand` legt genau **einen** Port an, „alle Felder auf einmal" wäre sonst in fünf Undo-Schritte zerfallen – daher `AddPortsCommand`, das **alle** Schlüssel prüft, bevor es einen anhängt (sonst bliebe nach einer Kollision die halbe Liste stehen). Und ein Struct-Feld darf `exec` heißen, ein Port nicht; die Fehlermeldung sagt jetzt auch warum.