validate_icon stripped the whole value before validating, so `emoji:🐕 `, `emoji:🐕\n` and `emoji:🐕\x1c` were silently accepted as `emoji:🐕`. Validate the raw namespace, name and emoji payload; a whitespace-only value still clears the icon. Padded keys such as `lucide:dog ` are now rejected naming `icon` (NQ-241-3). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>