This is the project's knowledge base. Don't read every file — each entry below has a one-line summary so you can pick only what matches your task. If you are an agent, your task brief lists the files you need.
| File | Summary |
|---|---|
architecture.md |
Crate layout, module hierarchy, the IgClient → typed domain-API pattern. |
naming.md |
Type / method / module naming rules and serde renaming. |
errors.md |
Single crate-level Error enum; how to surface IG errorCodes; no per-domain error types. |
tracing.md |
tracing setup, span naming, fields to include, redaction rules. |
http_transport.md |
How domain modules call Transport::request — single chokepoint, no direct reqwest. |
dto_conventions.md |
Three request shapes (direct args / Request struct / type-state builder). Response flattening rules. |
api_versions.md |
Per-endpoint version coverage policy (we mirror what Python trading-ig exposes). |
time_formats.md |
The three IG date formats and the time module helpers. |
testing.md |
IgMockServer, fixture loader, matchers, what each integration test must cover. |
adding_endpoint.md |
Step-by-step checklist for porting a new endpoint. Read this before writing code. |
out_of_scope.md |
What we explicitly do NOT port (sync wrapper, pandas, etc.). |
Each file describes the IG endpoints in one functional domain — request fields, response shape, version coverage, quirks. Read only the domain(s) you are implementing.
| File | Summary |
|---|---|
api/_overview.md |
Base URLs, mandatory headers, error payload shape, rate-limit buckets, pagination patterns. Always read first. |
api/session.md |
Login (v2 CST/XST + v3 OAuth), refresh, switch account, logout, encryption key. Already implemented in Vague 0. |
api/accounts.md |
/accounts, /accounts/preferences — list, read, update. |
api/dealing_positions.md |
/positions, /positions/otc, /confirms — list (v1+v2), open, update, close. |
api/dealing_working_orders.md |
/workingorders — list (v1+v2), create, update, delete. |
api/markets.md |
/markets, /marketnavigation — search v1, bulk v2, single v3, navigation. |
api/prices.md |
/prices/{epic} — historical prices, three independent endpoints v1/v2/v3. |
api/watchlists.md |
/watchlists — full CRUD on watchlists and their markets. |
api/client_sentiment.md |
/clientsentiment, /clientsentiment/related. |
api/history.md |
/history/activity (v1+v3) and /history/transactions (v1+v2). |
api/operations.md |
/operations/application — list, update, disable API key. |
api/repeat_dealing.md |
/repeat-dealing-window. |
api/streaming.md |
Lightstreamer protocol details. Vague 3 only — skip for REST work. |
- Implementing a REST domain (Vague 1) →
architecture.md,naming.md,errors.md,dto_conventions.md,testing.md,adding_endpoint.md,api/_overview.md, plus theapi/<your-domain>.md. - Streaming work (Vague 3) →
architecture.md,errors.md,tracing.md,api/_overview.md,api/streaming.md. - Reviewing or extending foundations →
architecture.md,errors.md,http_transport.md,tracing.md.