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_result structs 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).

See also

Emacs 29.1 (Org mode 9.6.6)