src/window-tracking/AttentionSettlePolicySpecs.md
The rule that decides which of an app's accessibility answers reaches AttentionModel. Pure: arrivals in,
a deadline and a verdict out. AttentionEngine owns the timer and calls this.
An app raising all of its windows answers once per window, 29ms apart (#5974, measured). Every answer is true and the user went nowhere — the app puts keys back where they started. Committing each one walked the app's whole set to the top of the MRU, seen live. Taking only the LAST answer per process is right for that case and for a genuine switch alike, so the rule is "wait until the app stops talking", and it needs nothing guessed in advance and taken back.
Since the attention rework this is the only thing standing between a multi-answer burst and a scrambled order — no other rule looks at runs of events any more.
settle after its FIRST member rather than after its lastRecent hardware input uses a 60ms settle, a little over the measured 29ms spacing. With no key or mouse event in the last 500ms, the answer is programmatic and settles for 200ms. That collapses A-11's measured 150ms raise sequence without adding latency to genuine user navigation.
The cross-policy integration case lives in AttentionDriverTests:
AX(B2) → exact click(B1) → AX timer fires leaves B1 in front because the delayed AX offer retains its
earlier sequence.