The plugin contract. Every framework capability implements this interface (AI_GUIDELINES ยง3.2).
name: string
Unique plugin name, lowercase kebab-case.
version: string
Plugin semver, matching its deno.json version.
dependencies: readonly CapabilityToken[]
Capability tokens that must be provided before this plugin registers.
optionalDependencies: readonly CapabilityToken[]
Capability tokens used when present, tolerated when absent.
provides: readonly CapabilityToken[]
Capability tokens this plugin registers.
consumes: readonly CapabilityToken[]
Capability tokens this plugin resolves lazily at runtime via
ctx.services.get. Unlike IPlugin.dependencies, these are not
required before this plugin registers and impose no ordering; but if no
registered plugin provides one, the kernel emits a soft warn-level
startup diagnostic (through the logger capability when one is registered),
because the deferred lookups would otherwise fail only later, at request
time.
priority: number
Registration priority within the same dependency level; lower first.
register(ctx: IPluginContext): void | Promise<void>
Registers the plugin's services, middleware, routes, and hooks.