# The ProseMirror relationship

Documents, transactions and plugins share one runtime identity.

Core builds on ProseMirror documents, State, Transaction, Step, Plugin and history semantics. Extensions compose schemas, commands and plugins into one editor, without a second document authority.

## Import map

| Original package | QuireKit package |
| --- | --- |
| `prosemirror-model` | `@quirekit/pm-model` |
| `prosemirror-state` | `@quirekit/pm-state` |
| `prosemirror-transform` | `@quirekit/pm-transform` |
| `prosemirror-history` | `@quirekit/pm-history` |
| `prosemirror-view` | `@quirekit/pm-view` (native DOM) |

Common DOM-free interfaces are also exported by `@quirekit/pm`. Native DOM View remains separate; Canvas/SVG do not consume DOM layout results.

## When to use PM directly

Use public PM types for complex commands, step mapping and state plugins. Expose user-facing operations through `editor.commands`, `chain()` and `can()` so controls and plugins use the same mutation path.

Do not mix two PM runtimes in one editor. Node, Selection and Plugin identities can differ across copies; review transitive dependencies when migrating extensions.
