1## Why23Semantic rules are correctly deduplicated for simulation, but presentation needs to draw every physical sentence that exists on the board. Exposing maximal sentence spans lets duplicate copies receive independent bars without changing rule semantics.45## What Changes67- Add `state.sentences` containing every physical maximal sentence span as ordered word ids and axis.8- Preserve semantic rule deduplication and existing source path behavior.9- Drop spans that are strict subsets of a longer span on the same axis.10- Cover stacked words, exact duplicate sentences, horizontal/vertical axes, and rule movement with engine fixtures.1112## Capabilities1314### New Capabilities1516None.1718### Modified Capabilities1920- `rule-engine`: expose physical sentence spans alongside deduplicated active rules.2122## Impact2324Extends engine state and parsing output for sentence-bar rendering. Existing semantic rules and turn behavior remain unchanged. Presentation consumers can use `state.sentences` without reconstructing board text.