Story: Import/export cleanup
Table of Contents
This page documents a story in Sprint 17. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Clean up import/export code accumulated across sprints: extract composite legs, refactor to a pure parser, add batch fetches, split the trade list, and wrap bond/credit/commodity/scripted instruments in typed export_result structs.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 17 |
| Now | Completed 2026-05-06. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2026-05-06 |
Acceptance
- All tasks complete; PR-by-PR breakdown in
git log.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Task: [trading,ore,qt] Wrap bond/credit/commodity/scripted in *_export_result structs | DONE | 2026-05-22 | 2026-05-22 | - Introduces four new export-result wrappers — `bond_export_result`, `credit_export_result`, `commodity_export_result`, |
| Task: Import/export cleanup: composite legs, pure parser, batch fetches, trade list split | DONE | 2026-05-22 | 2026-05-22 | - Phase 1: Unify instrument variant hierarchy — introduce `Instrument` concept, `with_legs<T,Leg>`, `trade_instrument` v |
Decisions
- export_result structs
- wrapping all instrument types in typed
export_resultstructs enforces a consistent return shape across the export pipeline and makes error handling uniform. - Pure parser
- the refactor to a pure parser removes side-effects from the parse step, making it testable in isolation.
Out of scope
- Per-instrument-type export optimisations (deferred).