ef8537c44f
Derive the broker-independent position-event table (#114's PositionEvent rows) from a completed PositionManagement run, as the first difference of the executed book (deal = target - book - in_flight; in_flight = 0 for instant backtest fills). A pure post-run reduction `derive_position_events(record, instrument_id)` in aura-engine, sibling of summarize_r, reading the 14-column PM record positionally; a reversal emits Close then the opposite open at one event_ts (close first); a window-end open position emits its open with no synthetic Close. Supersedes the rolled-back 0064 exposure-integral derive (abandoned per #117): this derives from the executed book (the PM record), never from exposure deltas. Stage-2 fixed-fractional / currency / equity-feedback sizing is out of scope (#116 owns the equity->Sizer z^-1 register per C10). Boss-signed: specify Step-5 grounding-check PASS (8/8 load-bearing assumptions ratified by named green tests). Fork decisions recorded on #115. refs #115