isValidPropertyName (src/core/properties/shaders.ts) prueft nur isValidFieldName. Die Sperre gegen die eingebauten Sprite-Keys, die Behavior-Variablen haben (isValidVariableName mit isCommonProp), fehlt.
Eine Property namens width, height, color, texture oder shader erzeugt deshalb eine doppelte Schemazeile: schemaForBag haengt die Shader-Zeilen ungeprueft an die Sprite-Zeilen (PropertySchema.ts). Beide Zeilen teilen sich den Bag-Key, der Uniform u_width liest dann die Sprite-Breite (z. B. 100) statt den Default des Property-Nodes.
Vorschlag
Im Compiler als Node-Problem melden, wie ungueltige und doppelte Namen heute schon: Name is a sprite property. Die gesperrte Liste sind die Keys aus PROPERTY_SCHEMAS.sprite, nicht eine zweite Kopie.
Ein Unit-Test in shaders.test.ts (Gegenprobe: Sperre entfernen, Test faellt).
## Befund
`isValidPropertyName` (`src/core/properties/shaders.ts`) prueft nur `isValidFieldName`. Die Sperre gegen die eingebauten Sprite-Keys, die Behavior-Variablen haben (`isValidVariableName` mit `isCommonProp`), fehlt.
Eine `Property` namens `width`, `height`, `color`, `texture` oder `shader` erzeugt deshalb eine **doppelte Schemazeile**: `schemaForBag` haengt die Shader-Zeilen ungeprueft an die Sprite-Zeilen (`PropertySchema.ts`). Beide Zeilen teilen sich den Bag-Key, der Uniform `u_width` liest dann die Sprite-Breite (z. B. 100) statt den Default des Property-Nodes.
## Vorschlag
Im Compiler als Node-Problem melden, wie ungueltige und doppelte Namen heute schon: `Name is a sprite property`. Die gesperrte Liste sind die Keys aus `PROPERTY_SCHEMAS.sprite`, nicht eine zweite Kopie.
Ein Unit-Test in `shaders.test.ts` (Gegenprobe: Sperre entfernen, Test faellt).
isSpriteProp() sitzt jetzt in src/core/properties/PropertySchema.ts:316 und ist abgeleitet
aus FULL_SCHEMAS.sprite — keine zweite Liste, die auseinanderlaeuft, sobald eine Sprite-Zeile
dazukommt. Gesperrt sind damit genau die zehn Namen enabled, scale, rotation, mirrorX, mirrorY, width, height, color, texture, shader.
isValidPropertyName (src/core/properties/shaders.ts:36) weist sie ab, und der Compiler meldet
den Fall als eigenes Problem am Node (compile.ts:80): "width" is a sprite property —
unterschieden vom "kein Wort"-Fall und vom Duplikat, damit man weiss, was zu tun ist.
Belegt:npm run check gruen (1090 Tests), e2e Schritt 28 shader mit einem neuen Check fuer
den gekaperten Namen und einem zweiten mit freiem Namen als Gegenprobe. CI-Task 53 auf 7e5003b
gruen, ALL PASSED - 930 checks.
Wiki: Shaders.md nennt die gesperrte Namensliste samt Begruendung an der Property-Zeile.
Erledigt in `c990dbc`.
`isSpriteProp()` sitzt jetzt in `src/core/properties/PropertySchema.ts:316` und ist **abgeleitet
aus `FULL_SCHEMAS.sprite`** — keine zweite Liste, die auseinanderlaeuft, sobald eine Sprite-Zeile
dazukommt. Gesperrt sind damit genau die zehn Namen `enabled, scale, rotation, mirrorX, mirrorY,
width, height, color, texture, shader`.
`isValidPropertyName` (`src/core/properties/shaders.ts:36`) weist sie ab, und der Compiler meldet
den Fall als **eigenes Problem am Node** (`compile.ts:80`): `"width" is a sprite property` —
unterschieden vom "kein Wort"-Fall und vom Duplikat, damit man weiss, was zu tun ist.
**Belegt:** `npm run check` gruen (1090 Tests), e2e Schritt 28 `shader` mit einem neuen Check fuer
den gekaperten Namen und einem zweiten mit freiem Namen als Gegenprobe. CI-Task 53 auf `7e5003b`
gruen, `ALL PASSED - 930 checks`.
Wiki: `Shaders.md` nennt die gesperrte Namensliste samt Begruendung an der `Property`-Zeile.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Befund
isValidPropertyName(src/core/properties/shaders.ts) prueft nurisValidFieldName. Die Sperre gegen die eingebauten Sprite-Keys, die Behavior-Variablen haben (isValidVariableNamemitisCommonProp), fehlt.Eine
Propertynamenswidth,height,color,textureodershadererzeugt deshalb eine doppelte Schemazeile:schemaForBaghaengt die Shader-Zeilen ungeprueft an die Sprite-Zeilen (PropertySchema.ts). Beide Zeilen teilen sich den Bag-Key, der Uniformu_widthliest dann die Sprite-Breite (z. B. 100) statt den Default des Property-Nodes.Vorschlag
Im Compiler als Node-Problem melden, wie ungueltige und doppelte Namen heute schon:
Name is a sprite property. Die gesperrte Liste sind die Keys ausPROPERTY_SCHEMAS.sprite, nicht eine zweite Kopie.Ein Unit-Test in
shaders.test.ts(Gegenprobe: Sperre entfernen, Test faellt).Erledigt in
c990dbc.isSpriteProp()sitzt jetzt insrc/core/properties/PropertySchema.ts:316und ist abgeleitetaus
FULL_SCHEMAS.sprite— keine zweite Liste, die auseinanderlaeuft, sobald eine Sprite-Zeiledazukommt. Gesperrt sind damit genau die zehn Namen
enabled, scale, rotation, mirrorX, mirrorY, width, height, color, texture, shader.isValidPropertyName(src/core/properties/shaders.ts:36) weist sie ab, und der Compiler meldetden Fall als eigenes Problem am Node (
compile.ts:80):"width" is a sprite property—unterschieden vom "kein Wort"-Fall und vom Duplikat, damit man weiss, was zu tun ist.
Belegt:
npm run checkgruen (1090 Tests), e2e Schritt 28shadermit einem neuen Check fuerden gekaperten Namen und einem zweiten mit freiem Namen als Gegenprobe. CI-Task 53 auf
7e5003bgruen,
ALL PASSED - 930 checks.Wiki:
Shaders.mdnennt die gesperrte Namensliste samt Begruendung an derProperty-Zeile.