## Pre-compact backup [2026-07-08 13:51]

### Key decisions
- Branch: `feat/option-request-structs`
- `Brief.expiry` uses `deserialize_string_or_number` to handle both `String` and `i64` (API returns ms timestamp for option_brief)
- OCC identifiers need trimming — server returns `"AAPL  260918C00275000"` with padding spaces
- `option_kline` requires both `begin_time` + `end_time` (server-mandatory)
- `get_option_expiration` is US-only; HK option expiry has no dedicated endpoint
- HK option symbols API wire name must be `all_hk_option_symbols`, NOT `option_symbol` (the current Rust SDK has wrong wire name)

### Current state
- 3 bugs already fixed and committed: OCC padding, `Brief.expiry` type coercion, kline begin/end_time
- Real API smoke tests: **PASS=51 FAIL=0 SKIP=1** (skip = `GetOptionSymbols(HK)` was reporting "method not supported" due to wrong wire name)
- **UNFINISHED**: Fix `get_option_symbols` wire name from `option_symbol` → `all_hk_option_symbols`
- **UNFINISHED**: After wire name fix, update the HK option smoke test to use `get_option_symbols` → then do chain→quote→kline full path for HK options

### Don't lose
- Java SDK confirms the correct wire name is `all_hk_option_symbols`
- The HK smoke test currently skips because of wrong wire name — once fixed, it should succeed and test the full HK option flow
- `src/quote/mod.rs` has uncommitted changes (the wire name fix is in progress)
- All 267 unit tests pass
