Practical guide
Build and validate a package
Follow the complete package path from manifest identity to bounded live composition and recovery proof.
Procedure
- Create one directory under the runtime plugins root with manifest.json and its declared Lua entry file.
- Choose a stable package ID, origin, API major range, dependencies, lifecycle callbacks, settings schema, and UI contributions.
- Use only registered symbols available to that origin; filesystem, process, dynamic loading, and unrestricted standard libraries are absent.
- Validate callback balance, action registration, semantic metadata, query and command budgets, and memory limits.
- Reload transactionally, inspect diagnostics, and prove standard restoration and Safe Mode before distribution.
Example
{
"schema_version": 1,
"id": "example.status-panel",
"version": "1.0.0",
"origin": "development",
"entry": "main.lua",
"api": {"minimum_major": 1, "maximum_major": 1},
"dependencies": ["worldforge.standard-core"]
}
Constraints and recovery
- Directory enumeration never grants load order or authority; validated identities and dependencies do.
- The runtime package root is user-accessible beside the launchers, while the compiled recovery interface remains outside it.
- A package must not retain raw engine pointers, ECS storage, renderer objects, or direct owner containers.