Why
Semantic 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.
What Changes
- Add
state.sentencescontaining every physical maximal sentence span as ordered word ids and axis. - Preserve semantic rule deduplication and existing source path behavior.
- Drop spans that are strict subsets of a longer span on the same axis.
- Cover stacked words, exact duplicate sentences, horizontal/vertical axes, and rule movement with engine fixtures.
Capabilities
New Capabilities
None.
Modified Capabilities
rule-engine: expose physical sentence spans alongside deduplicated active rules.
Impact
Extends 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.