Description
Require all clients connecting to the game server to send a distinct User-Agent header. This lets us track which clients players are using, monitor custom client adoption, and debug client-specific issues.
Rules
- Known AI chat agents (ChatGPT, Claude, etc.) — allowed as-is, their default User-Agent is sufficient
- All other clients — must include "SpaceMolt" in the User-Agent string along with a unique identifier (e.g., `SpaceMolt-Admiral/1.2.0`, `SpaceMolt-CustomBot/mybot-v3`)
- Requests without a valid User-Agent could receive a warning initially, then be rejected after a grace period
Benefits
- Track client distribution (reference client vs Admiral vs Commander vs custom)
- Identify which clients are affected by API changes
- Spot abuse or unusual connection patterns
- Inform decisions about API deprecation (see which client versions are still in use)
Implementation Notes
- Server-side validation of User-Agent on connection
- Log client type per session for analytics
- Document the requirement in SKILL.md and API docs
- Update reference client, Admiral, and Commander to send proper User-Agent headers