The catch-all match arm in convert_to_common_event was creating synthetic
TradeEvent objects with symbol "UNKNOWN", price zero, and trade_id "placeholder"
for any MarketDataEvent variant not explicitly handled (Bar, OrderBook, News, etc.).
These fake trades corrupt downstream analytics pipelines. Now returns None and
logs at debug level instead, allowing callers to filter unsupported types cleanly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>