ExtensionA connected out-of-process extension: a subprocess speaking the Quoin extension wire, providing classes and operations to the host program. Extension.loadPackage: is the managed entry point (spawn per the package's extension.toml, install its classes under the package namespace, run its init.qn glue) -- use name:* does this for you. The handle's call:with: family is the raw op surface that package glue builds on. See docs/internal/EXT_PACKAGING.md.
Load an extension PACKAGE -- a folder with an extension.toml launch/identity spec and optional init.qn glue: spawn the subprocess per the manifest, install its classes under the package namespace (no bare-global pollution), run init.qn, and cache the live extension (idempotent per folder). use name:* resolves a package folder and calls this.
The extension-assigned instance id behind an extension-backed value (its object-table key, unique within one extension). Identity reflection for package glue: ext-backed instances carry no Quoin-side state and a package may overload == (numpy's elementwise comparisons, say), so this is the only stable per-instance key.
Spawn the extension binary at the String path, connect to it, and answer the Extension handle. The unmanaged escape hatch for dev/testing: the manifest's class names install VERBATIM as globals (no namespace enforcement); the managed path is loadPackage:.
The raw call surface: send the op (a String) with a String argument, then service the conversation -- re-entrant host-ops the extension may issue -- until it returns. Answers a String or a resource handle. Package glue normally wraps this; call:with:args: / call:with:data: pass richer arguments.
As call:with:, additionally passing a List of typed handle arguments: an extension-backed instance passes its resource id; every other value (a block, a string, ...) is minted a call-local host-value handle the extension can call back into.
As call:with:, additionally passing one structured payload (any Quoin data value, serialized as a tree) that the extension reads as native structured data; the result may likewise come back structured.