Compatibility
Plugins declare type, Awn constraint, Theme API constraint, required/optional capabilities, and optional direct theme-version map. A theme-addon must name themes; business plugins should use capabilities.
Capabilities cover public-site integration supplied by the active theme. Organization dashboard and Super Admin contracts are supplied by the platform shell and must not add theme capability requirements.
Evaluation order:
incompatible-platform;requires-theme;requires-theme-update;incompatible-theme-api;missing-capabilities;partially-compatible;compatible.
Compatible and partially compatible allow activation. The built-in matcher accepts *, exact two/three-part versions, caret, and one >=, <=, >, or < comparison—not full Composer grammar.
Enabling requires installed/active/collision-free/compatible. Disabling remains possible. Theme activation evaluates every enabled assignment against the target and preserves the old state on any incompatibility. Runtime resolution repeats checks and fails closed.
Current matrix:
- Contact Form: business, Awn/Theme API
^1.0, before-footer + plugin pages + site navigation; works with both themes. - Events: business, Awn/Theme API
^1.0, home slot + pages + navigation, optional page-after-content; both themes provide all. - Fundraising: business, Awn/Theme API
^1.0, home-after-hero + plugin pages + site navigation; works with both current themes and contributes organization and Super Admin pages/widgets independently of theme rendering. - Karam Banner: theme add-on, Karam
^1.0, before-footer; blocked on Najda and blocks switching away while enabled.
Theme package version and Theme API version are independent. Source manifests are authoritative; catalog metadata is a snapshot.