02a8fc7ce8
Two bugs fixed: 1. NPC sprites not fully rendering: createEntitySprite is async but was called without await from handleStateUpdate. Concurrent state updates triggered multiple simultaneous creation calls for the same entity. The second call composited before textures loaded, producing empty spritesheets. Fixed with a creatingEntities guard set. 2. Interaction emojis not appearing after first use: animationend listener was attached during removal (when animation had already completed), so it never fired. Ghost entries in activeEmojis map blocked future emoji creation. Fixed by self-cleaning via animationend listener attached at creation time. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>