P0 (safety): adapter.py rejects unmapped types (OCO, TP_SL) via is_type_available() guard. Returns None instead of silent LIMIT fallback. P1 (BingX strings): STOP_MARKET → STOP_MARKET (protective, reduce-only) STOP_LIMIT → STOP (protective) TRIGGER_MARKET stays generic MIT TRAILING_STOP → TRAILING_STOP_MARKET Tests updated to match corrected mappings.