Section 21Platform and Delivery
Extension Host requirements
Defines capability-scoped built-in Rust, sandboxed Wasm, and supervised out-of-process extension lifecycles.
Section relationships
| ID | Name | Priority | Requirement | Verification |
|---|---|---|---|---|
| EXT-001 | Built-in Rust extension | MVP | BeforeMetal SHALL provide versioned Rust traits for first-party hot-path extension points compiled as part of a portable product build. | Inspection |
| EXT-002 | No unstable Rust dylib contract | MVP | BeforeMetal SHALL not use the native Rust ABI as the long-lived third-party dynamic-plugin contract. | Inspection |
| EXT-003 | Extension manifest | Beta | Every third-party extension SHALL declare identity, version, API range, type, capabilities, dependencies, permissions, determinism, thread safety, resource expectations, and snapshot support. | Test |
| EXT-004 | Lifecycle contract | Beta | An extension SHALL use a documented describe, configure, initialize, activate, step or callback, reset, snapshot where declared, restore where declared, and shutdown lifecycle. | Test |
| EXT-005 | Capability-scoped access | Beta | An extension SHALL receive only the world state and services authorized by its declared capability. | Test |
| EXT-006 | Wasm component extension | Beta | BeforeMetal SHALL support a sandboxed Wasm profile for suitable controllers, metrics, importers, sensors, and environment models. | Demonstration |
| EXT-007 | Process extension | Beta | BeforeMetal SHALL support an isolated process-extension profile for polyglot, proprietary, or crash-prone integrations. | Demonstration |
| EXT-008 | External native extension isolation | External | A third-party extension containing non-Rust native code SHALL execute outside the core simulator process and SHALL not be required by the portable distribution. | Inspection |
| EXT-009 | Error containment | Beta | Extension errors SHALL be converted into structured diagnostics and SHALL not unwind or throw across the host boundary. | Test |
| EXT-010 | Resource limits | Beta | Sandboxed and process extensions SHALL support configured memory, CPU, time, output, filesystem, network, and device limits where enforceable. | Test |
| EXT-011 | Determinism declaration | Beta | An extension SHALL declare its determinism class and sources of nondeterminism. | Inspection |
| EXT-012 | Extension conformance suite | Beta | A public extension type SHALL ship with an executable conformance suite and reference example. | Test |
| EXT-013 | Extension upgrade compatibility | Beta | Incompatible extension API versions SHALL fail during discovery with an actionable diagnostic. | Test |
| EXT-014 | Asset-embedded extension safety | MVP | A plugin reference contained in an imported asset SHALL remain inert until explicitly trusted and mapped to an installed extension. | Test |
Generated from the canonical specification. Edit section metadata or prose in docs/requirements.md; the website rebuilds this page and its relationships automatically.