Module specification
Manifest fields, permissions, and versioning.
Manifest
A module declares exactly one trigger type, one action type, the function selectors it may call, and the permissions it requests. Template values like {{config.treasury}} resolve from the installer’s configuration.
Versioning
Published versions are immutable. Installations pin a version. Upgrades are opt-in and show a permission diff.