Skip to content

Module development

Modules expose setup(bot, config) -> plugin. A plugin may implement on_event(event_name, **payload), on_command(command, context), build_app_commands(), get_command_manifest(), update_config(config), and on_modules_ready(manager).

Modules are shipped packages, not user-uploaded code. The trade module owns a registry where optional modules register handlers implementing normalize, validate, transfer, and describe. Keep handlers tenant-aware and idempotent.