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.