This document tracks changes to the plugin API contract. Plugins declare their apiVersion in package.json under pokerEnginePlugin.apiVersion.
The engine currently supports API versions 1.0.0 through 1.999.999 (the entire 1.x range).
API Version 1.0 (Initial Release)
The foundational plugin API. All features listed below are available to any plugin declaring apiVersion: "1.0".
Registry Methods
addAction(hook, callback, priority?)— Register an action hook listeneraddFilter(hook, callback, priority?)— Register a filter hook listenerdoAction(hook, ...args)— Fire a plugin-namespaced action hookregisterRoute(method, path, options?, ...handlers)— Register an Express route.options.accessispublic,authenticatedorwebhookregisterProvider(type, providerClass)— Register a payment providerregisterProviderMeta(type, meta)— Register payment provider metadataregisterProviderType(type)— Register a provider type for discovery
Registry Namespaces
users.*— User management (findByExternalId, createWithExternalMapping, generateAuthCode, exchangeAuthCode, linkExternalMapping, findExternalMappingByUserId, findExternalMappingsByUserIds)auth.*— Auth helpers (setAuthCookies, telegram.login, telegram.link, telegram.unlink, telegram.status, telegram.listAccounts, telegram.adminUnlink)cashier.*— Payment operations (initiateDeposit, requestWithdrawal, createPendingDeposit, confirmDeposit, processPaymentWebhook, isTransactionProcessed, findPendingDepositByExternalId, findPaymentTransactionById, listPaymentTransactions, getUserBalance, getOrCreateDepositCode, lookupUserByDepositCode, createWithdrawalRequest, approveWithdrawal, rejectWithdrawal, ensurePaymentSystem, getPaymentSystems, getPaymentSystem)config.*— Configuration (get, getPluginConfig)settings.*— Plugin settings CRUD (get, set, getAll, delete)logger.*— Logging (info, warn, error)middleware.*— Express middleware (authenticate, csrfProtection)
Server Hooks (Stable)
server:boot,server:ready,server:shutdownserver:routes:auth,server:routes:cashier,server:routes:admin,server:routes:api
Server Hooks (Beta)
plugin:activated,plugin:deactivating,plugin:deactivated,plugin:auto-disabled,plugin:settings:saved
Server Hooks (Experimental)
game:hand:started,game:hand:completedgame:player:seated,game:player:left
Server Filters (Stable)
auth:providers,cashier:deposit:methods,cashier:withdraw:methods,plugin:settings:validate
Client Hooks (Beta)
nav:items:user— Filter user navigation items
UI Slots (Stable)
auth.login.below-form,auth.register.below-formcashier.deposit.method-list,cashier.withdraw.method-listlayout.main.sidebar.end,layout.main.header.end,layout.admin.sidebar.endlobby.top,profile.edit.after,admin.users.row.flags,admin.user-detail.integrationsplugin.settings.before-form,plugin.settings.after-form,plugin.settings.after-form.{providerType}
Client Engine API
window.__pokerEngine:version,React,ReactDOM,fills,pages,hooks,api,auth,startup
Package Manifest Fields
pokerEnginePlugin.providerType(required)pokerEnginePlugin.displayName(required)pokerEnginePlugin.descriptionpokerEnginePlugin.hasFrontendpokerEnginePlugin.hasHealthCheckpokerEnginePlugin.configFieldspokerEnginePlugin.apiVersionpokerEnginePlugin.minEngineVersionpokerEnginePlugin.maxEngineVersion
Versioning Policy
- Patch versions (1.0.x): Bug fixes only, no API changes
- Minor versions (1.x.0): New features added, backwards compatible
- Major versions (x.0.0): Breaking changes (existing plugins may need updates)
Plugins should declare the minimum API version they require. The engine rejects plugins whose declared version is outside its supported range. A plugin that declares no apiVersion skips this check.