- text.spelling.check checks a given `ids` as edit.findReplace does
(checked_ids_param): a non-array, a negative, non-numeric or unknown id is
an error instead of a check of the whole document. Null still means every
visible, unlocked type object.
- The byte-offset test puts an em dash, not "café", before the unknown word,
so it passes whichever dictionaries craft-proof is built with (CI builds
with craft-i18n's, where "café" is unknown).
- Docs: the spell check engine in target-app-parity.md (Type advanced rows
and evidence), gaps.md (G4), roadmap.md (M7) and the Language per
character rows of type-parity.md, with status lines and revision history.