Glossary
Definitions of Conduit terms.
Account: A balance holder identified by a UUID. Usually a player, but can be a non-player entity (town, NPC, system) since identity is just a UUID.
Bridge: A provider that adapts an existing economy plugin (EssentialsX, CMI, etc.) to the Conduit Economy interface. See Building a Bridge.
CallerToken: A bound identity representing the plugin that initiated an operation, propagated through async work via Java 25 ScopedValue. Replaces Vault's spoofable plugin-name string. See Caller Identity.
Capability: An ability a provider may or may not have. Structural capabilities are extension interfaces (BankingEconomy, etc.); fine-grained capabilities are Capability enum flags checked with supports(...). See Capabilities.
Capable: The interface (extended by Economy) exposing capabilities() and supports(Capability).
Consumer: A plugin that uses an economy (shop, jobs, rewards). Depends only on conduit-api. See Consumer Guide.
conduit-api: The public API artifact: interfaces, records, results, with zero implementation and no shaded dependencies. Consumers add it as compileOnly.
conduit-core: The runtime plugin that installs the registry, wraps providers in the dispatch layer, fires events, and provides commands and metrics.
Currency: A unit of money with id, names, symbol, decimal places, and formatting. SimpleCurrency is the standard record implementation; SimpleCurrency.ofDefault(id, symbol, decimals) is the common factory.
Dispatch layer: The decoration the registry wraps around every resolved Economy. It performs synchronous amount validation, runs pre-auth interceptors, and fires post-commit events, so providers do not.
EconomyResult: The sealed result of a money mutation: Success, InsufficientFunds, AccountNotFound, CurrencyNotSupported, Rejected, ProviderError. Pattern-matched by consumers.
Event: A post-commit, non-cancellable notification that something happened (EconomyTransactionEvent, EconomyAccountEvent, provider lifecycle events). See Events & Interceptors.
Extension interface: An interface that extends Economy to add a feature area: BankingEconomy, MultiCurrencyEconomy, TransactionalEconomy, LeaderboardEconomy. Preserves backend identity. See Extension Interfaces.
Idempotency: The guarantee that re-submitting the same operationId with the same parameters does not double-execute. Provided by TransactionalEconomy's *Idempotent methods. Mismatched re-submissions throw IdempotencyMismatchException.
Interceptor: EconomyTransactionInterceptor: a synchronous, pre-authorization hook that can veto an operation before it runs. Returning false produces EconomyResult.Rejected.
Magnitude: A positive amount. deposit/withdraw/transfer take magnitudes; direction comes from the method name, not the sign.
Most-derived registration: Registering a provider once, under the single most-specific service type it implements, so the hierarchy walk can resolve all base and extended queries to it.
OperationResult: The sealed result of a void-like operation: Success or Failure. Has orThrow().
Preflight: The optional canDeposit/canWithdraw checks, gated by Capability.ECONOMY_PREFLIGHT.
Provider: A plugin that implements Economy and stores balances. Registered with the ProviderRegistry. See Provider Guide.
ProviderRegistry: The registry that holds providers, resolves them by type with hierarchy walking and priority tie-breaking, and offers order-insensitive consumption (whenProviderAvailable).
ServicePriority: Bukkit's priority enum used to break ties when multiple providers satisfy a query. Highest wins; earliest registration breaks equal-priority ties.
Transaction: The immutable record of a completed money movement: id, type, actor, target, currency, amount, balances before/after, reason, metadata, timestamp.
TransactionBuilder: A fluent builder (economy.transaction()) for composing an operation with a reason, metadata, and optional currency, ending in execute().
whenProviderAvailable: The order-insensitive way to consume a provider: runs immediately if one is registered, otherwise once one registers. Eliminates the onEnable load-order race.