- Convert 23 empty-bracket structs to unit structs in trading_engine
- Replace .unwrap()/.expect() with safe alternatives in fxt, data, ctrader-openapi
- Suppress generated protobuf warnings in ctrader-openapi
- Fix let_ must_use patterns with wildcard assignment
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
MessageDispatcher spawns a reader task that routes responses to pending
requests by clientMsgId (UUID + oneshot channels), and broadcasts
server-pushed events (executions, spots, errors) via tokio broadcast.
Handles connection closure with pending request cleanup.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>