Definition ≠ Instanz
Die wichtigste Trennlinie im System: der Baustein-Typ und seine konkrete Verwendung.
| Definition | Instanz | |
|---|---|---|
| Was | Ein Baustein-Typ: „so sieht eine Card aus, das kann sie" | Eine konkrete Verwendung: „diese Card auf dieser Seite mit diesem Inhalt" |
| Wo | definitions/… (versioniert, vom Team gepflegt) | Surface-JSON (vom Projekt/Konsumenten erzeugt) |
| Vertrauen | Trusted — durchläuft den strengen Build | Untrusted — wird zur Laufzeit validiert und escaped |
| Änderung | Neue Version (Semver), bei Breaking Change + Migration | Draft → Publish, alte publizierte Stände bleiben unverändert |
Eine Instanz (ein Node im Surface-Baum) referenziert ihre Definition per ID und pinnt die Version (definitionVersion). Sie liefert nur: Props (gegen das Schema validiert), Slot-Inhalte (wieder Nodes), Event-Bindings (on) und Sichtbarkeit (hideOn).
Deshalb kann sich das System weiterentwickeln, ohne Bestandsseiten zu brechen: die Definition wandert auf v2, die publizierten Instanzen bleiben auf v1 gerendert, und beim nächsten Publish hebt eine Migration sie automatisch an.