What is an extension

An extension is a manifest plus, optionally, code. The manifest (reference) declares everything the platform hosts for it — and the platform hosts almost all of it *declaratively*, with no extension code involved:

Install is per store

Code physically present in Mozaik's workers does not exist for a store until that store installs the extension. Dispatch routes only through installed + enabled rows (extension.installextension.enable). The per-store row pins the extension's version and a snapshot of its manifest; upgrades are explicit audited commands (extension.upgrade).

What stays core (and why)

Payment session state machine (money truth can't depend on extension correctness) · checkout orchestration (the composition point) · order + legal document generation (Turkish consumer-law artifacts) · the stock ledger (append-only, trigger-enforced) · the manual cargo path (a store with zero extensions must still fulfill) · the carrier VKN reference table · the hook runner and breaker · the mail transport and its promo-free enforcement · GİB mükellef lookup and e-Fatura/e-Arşiv routing (M7) · the İYS consent ledger (M10).

The four permanent refusals

From ADR 0020, unchanged: no extension-defined inbound routes or request middleware; no direct database access from extension code; no free documentShell injection; no per-store storefront forks.

Generated from the live platform registries at build time — reference pages cannot go stale. Markdown variant: /what-is-an-extension.md