feat(snapshot): interpret iOS node facts once at producer seams
Summary
One synchronous capture-kit interpreter acquires native checked/password/editable facts and RN value semantics at runner snapshot/quality/querySelector, AX bridge, Limrun, and Appium adapter seams. Explicit facts win; unknown stays absent. Android reported states and provider heading/roleDescription remain.
Rename the #3589 module and its golden-driven test to ios-node-interpretation. R74 and ios-snapshot-acquisition.ts match main exactly: importing interpretation into acquisition would grow its eager closure from 9 to 10 modules. Remove duplicated Swift/TS rules and Swift state carriers; modal nodes preserve native values. 28 files; snapshot docs updated.
Closes #3524
Validation
Head 64573fd90119870854aee208572ebd61712ca584: focused tests (234), typecheck, lint, repository-wide format, host-locked pnpm check:affected --run (15,325 related tests), committed eager-closure/file-size checks (1,039), and layering tests (330) passed.
Original five-seam regression evidence:
| base cfa96531a | runtime refactor b1d30355f |
|---|---|
| 28 failed, 67 passed | 95 passed |
Prior live/native evidence covers runner private AX, recursive XCTest, bridge, Appium, Limrun, and a notification modal; temporary resources were cleaned up. No new live run is needed for this behavior-preserving module move. is checked is unavailable; checked facts were verified through snapshots and get attrs. Limrun's GenericElement RN fixture stays uninterpreted.
Diff vs main: 28 files, +641/−135. CI and cubic review pending on this head.