This refactors the Feature data model to use a top-level `event_names`
array field instead of the nested `config.filters[0].value` structure.
**Backend Changes:**
- Updated event routing logic in eventRouter.ts to use event_names
- Updated analytics endpoints to check event_names field
- Simplified validateMeteredConfig to remove filters initialization
- Updated feature create/update handlers to handle event_names
**Frontend Changes:**
- Refactored FeatureConfig component to manage event_names directly
- Simplified FilterInput component to work with string array
- Updated CreateFeature and UpdateFeature to send event_names
- Updated analytics views and tables to display event_names
**Database:**
- event_names column already exists in features table
This is a critical change for billing/usage tracking. All event mapping
logic has been carefully preserved to ensure no disruption to existing
functionality.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>