Extension system
An extension groups Dart capabilities that attach to a MontyRuntime. It can
contribute host functions and OS-call handlers, initialize resources during
attachment, and release them during disposal.
The coordinator validates an extension set before Python executes. MontyExtension defines namespace, ordering, backend, and OS-prefix requirements.
An extension chooses its sandbox-child participation through ChildPolicy.
AttachContext keeps attachment separate from bridge execution and disposal. Cross-extension calls go through registered host functions instead of direct ownership of another extension.
See Sandbox Architecture for child ownership and Filesystem and workspace policy for the workspace lifecycle. MontyExtension and the built-in extension declarations define the public extension surface.