Meridian docs
Meridian documentation

Find a page.

Type at least two characters.

    Docs menu

    Learn

    Architecture boundaries

    How Meridian uses owned contracts, stable identity, typed commands, immutable snapshots, and explicit adapters.

    Updated July 16, 2026Private source revision 8fc7ab0

    Meridian’s systems have names because their responsibilities need edges. Rendering should not quietly own world state. Procedural authoring should not become the live physics simulation. Third-party libraries should not decide the public API forever.

    Meridian-owned contracts

    External libraries stop at adapters. Code above those adapters works with Meridian descriptors, handles, errors, and commands rather than leaking wgpu, Rapier, egui, or provider-specific types into stable interfaces.

    A dependency enters through a controlled edge
    1. 01External library

      A replaceable implementation detail with its own types and lifecycle.

    2. 02Adapter

      Translation, validation, capability checks, and error mapping happen here.

    3. 03Meridian contract

      The rest of the engine sees stable, engine-owned behavior.

    Stable identity and local handles

    Persistent IDs cross save, source, package, and network boundaries. Generational handles are fast, process-local references. Confusing the two creates stale references or makes durable data depend on one runtime session.

    Commands and snapshots

    Cross-domain mutation travels through typed commands and explicit barriers. Render, audio, and worker systems consume immutable snapshots. This makes ownership visible and gives tools, undo, recovery, and diagnostics something concrete to inspect.

    A visible frame without shared mutable ownership
    1. 01Authoritative world

      Gameplay and tools apply validated commands at defined barriers.

    2. 02Extraction

      Relevant state becomes an immutable, versioned snapshot.

    3. 03Consumer systems

      Rendering and workers process snapshots without taking world authority.

    4. 04Correlated result

      Outcomes and diagnostics return with stable context.

    Optional means absent

    When an optional pack is disabled, it should add no tasks, listeners, allocations, GPU resources, panels, package chunks, or dependencies. A disabled feature that still quietly runs is not optional in the way Meridian uses the word.

    Source remains authoritative

    Source documents are the durable truth. Compiled chunks, generated artifacts, derived caches, and cooked outputs can be rebuilt. Recovery favors the source and records what had to be regenerated.