# Exchange API endpoints this SDK implements with a typed method, against the
# spec version pinned in .api-version. Hand-maintained source of truth for
# coverage. The Python SDK deliberately trails the Rust SDK — add a line when
# you add a typed method. Format: METHOD /path  ({market_id} = placeholder)
#
# Machine-checked, both ways, by scripts/check_spec_drift.py on every PR: every
# line here must exist in the pinned spec, and must have a caller in the client
# code — no more, no less. An operation the client requests but that the pinned
# spec does not define stays OUT of this file and is named in that script's
# CODE_ONLY_OPS instead (today: POST /account/leverage, ahead of the spec, and
# GET /health, an operational probe outside the contract). So every line here is
# a real contract operation, and the coverage figure counts nothing else.
#
# Paths under /api/v1 are served by the direct backend service (host root, no
# /api/exchange gateway prefix) as the gateway is retired (ENG-4740); the rest
# stay on the legacy gateway until they gain an /api/v1 route upstream. The
# prefix is part of the operation: the client sends it (`direct=True`) and the
# spec lists both surfaces separately, so a line must carry the prefix whenever
# the call does.

# -- direct /api/v1 service --
GET /api/v1/markets/summary
GET /api/v1/tickers
GET /api/v1/markets/{market_id}/ticker
GET /api/v1/markets/{market_id}/orderbook
GET /api/v1/markets/{market_id}/trades
GET /api/v1/markets/{market_id}/candles
GET /api/v1/markets/{market_id}/funding
GET /api/v1/markets/{market_id}/mark-price
GET /api/v1/markets/{market_id}/status
GET /api/v1/account
GET /api/v1/account/state
GET /api/v1/account/summary
GET /api/v1/account/fees
GET /api/v1/account/portfolio-history
GET /api/v1/account/equity-history
GET /api/v1/positions
GET /api/v1/positions/closed
GET /api/v1/fills
GET /api/v1/account/rate-limit
GET /api/v1/account/cancel-on-disconnect
PUT /api/v1/account/cancel-on-disconnect
POST /api/v1/account/credit
POST /api/v1/orders
POST /api/v1/orders/batch
GET /api/v1/orders
GET /api/v1/orders/history
PATCH /api/v1/orders/{order_id}
DELETE /api/v1/orders/{order_id}
DELETE /api/v1/orders
POST /api/v1/bridge/deposit-addresses
GET /api/v1/bridge/deposit-addresses
GET /api/v1/bridge/assets
GET /api/v1/bridge/deposits
GET /api/v1/bridge/deposits/{id}

# -- legacy gateway (no /api/v1 route yet) --
GET /markets
GET /markets/{market_id}/adl-events
GET /account/{address}/adl-history
POST /auth/login
POST /agents/register
GET /withdrawals
POST /account/deposit
POST /account/margin
GET /orders/{order_id}
GET /keys
DELETE /keys/{key_id}
GET /agents
DELETE /agents/{address}
POST /ws-tokens
PUT /admin/tiers
GET /admin/tiers
DELETE /admin/tiers/{address}
