HTML-encode user-supplied key names in both Create and Update endpoints. Previously, names were stored verbatim — an attacker could inject script tags that would execute in admin panels or any view using innerHTML/v-html rendering. Fixes: CWE-79 (Stored Cross-Site Scripting)