iBulletin plugins live in one folder each.

Example:
plugins/calendar/plugin.json
plugins/calendar/bootstrap.php
plugins/calendar/install.php
plugins/calendar/activate.php
plugins/calendar/deactivate.php
plugins/calendar/upgrade.php
plugins/calendar/uninstall.php
plugins/calendar/migrations/001_initial.php
plugins/calendar/pages/calendar.php
plugins/calendar/languages/en/calendar.php

The plugin folder is not its identity. plugin.json declares a permanent ID such as
"example.calendar" which must remain stable for upgrades and dependencies.

iBulletin 1.0 requires compatibility/API metadata in a declarative plugin.json
manifest before a plugin can be staged or activated. Executable plugin.php manifest
files are not loaded as metadata.

See docs/PLUGIN_GUIDE.docx for plugin basics, guidelines, and development best practices.
The bundled Shoutbox plugin is also a working reference implementation.
