Big refactor to make document extensions return a consistent { exports, lifecycle } shape (matching workspace extensions), unlocking a typed binding.getExports(docId) API and removing the old purge()/DocumentLifecycle patterns. Also swaps fsError() for an FS_ERRORS namespace so filesystem errors are instantly discoverable via IDE autocomplete—same error codes, nicer ergonomics. 🧩
