Level now fires callbacks when game state changes that require redrawing: - on-coins-changed!: fired when a coin is eaten or key is picked up - on-maze-changed!: fired when a door is removed Exposes set-on-coins-changed! and set-on-maze-changed! messages so the game ADT can wire these to the draw ADT's dirty flags. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>