# BlockNinja Core Shared Go code between the BlockNinja CMS and the orchestrator: types, interfaces, and utilities both need. > **Not a plugin SDK.** Core is purely for sharing code between the CMS and the orchestrator. Plugins must **not** import `block/core` — in the wasm-plugin era they are standalone artifacts built against the wasm ABI. (Core previously served as the plugin SDK; that role is gone.) ## Package Structure | Package | Purpose | |---------|---------| | `plugin/` | PluginRegistration, CoreServices, RegisterFunc | | `blocks/` | BlockMeta, BlockFunc, BlockRegistry interface, BlockContext | | `blocks/builtin/` | Reusable block implementations (HTMLBlock) | | `templates/` | TemplateRegistry interface | | `templates/bn/` | Shared templ components (head, engagement, toolbar) | | `auth/` | Claims types, context extractors | | `content/` | Content access interface | | `settings/` | Settings access interface | | `gating/` | Access gating evaluation | | `crypto/` | Encrypt/Decrypt interface | | `render/` | Rich text rendering utilities | | `video/` | Video embed URL parsing | | `ai/` | AI tool registry interface and types | | `rbac/` | Role type definition | ## Usage Consumers are the CMS and the orchestrator only. ```go import "git.dev.alexdunmow.com/block/core/plugin" ```