Findings: BR-012.
Give cash, positions, orders, fills, trades, price state, risk state, and callback sequencing one
documented authority each. Collaborators must use explicit tested interfaces for shared mutation
rather than undocumented private Broker fields.
Primary surfaces: Broker, order book, execution and fill engines, portfolio ledger, risk engine,
architecture documentation and boundary tests.
Acceptance:
- Every mutable domain concept has one documented owner and mutation contract.
- Boundary tests detect bypasses that would desynchronize state.
- Public behavior and all correctness and parity results from Milestones 1-2 remain unchanged.
Dependencies: Milestones 1-3.
Plan reference: /home/stefan/ml4t/libraries/ml4t-backtest-dev/.workspace/work/backtest-stable-release/milestone-4/plan.md - Issue 21 in milestone 0.1.0-m4 - Maintainability, performance, and adoption.
Findings: BR-012.
Give cash, positions, orders, fills, trades, price state, risk state, and callback sequencing one
documented authority each. Collaborators must use explicit tested interfaces for shared mutation
rather than undocumented private Broker fields.
Primary surfaces: Broker, order book, execution and fill engines, portfolio ledger, risk engine,
architecture documentation and boundary tests.
Acceptance:
Dependencies: Milestones 1-3.
Plan reference:
/home/stefan/ml4t/libraries/ml4t-backtest-dev/.workspace/work/backtest-stable-release/milestone-4/plan.md- Issue 21 in milestone0.1.0-m4 - Maintainability, performance, and adoption.