JARVIGManual

JARVIG API doctrine

ADR: ADR-0022 and ADR-0023. They fill in ADR-0017 and ADR-0018. They do not replace them. native/jarvig_core/include/jarvig_core.h is a bootstrap slice, not the SDK.

This is the contract for every external consumer. It is not a pile of functions. The SDK is not implemented here. native/jarvig_core/include/jarvig_core.h remains a bootstrap clock and runtime. Do not copy its integer error style into the next public surface.

                         JARVIG ENGINE
                              |
                 INTERNAL RUST ENGINE APIs
                unstable / high-performance
                              |
              +---------------+----------------+
              |               |                |
              v               v                v
       PUBLIC ENGINE API   TOOL API      EXTENSION API
              |               |                |
          stable C ABI     Commands        Plugin ABI
              |               |                |
       +------+------+        |          +-----+-----+
       |      |      |        v          |           |
       v      v      v      Editor       v           v
      C++   Rust   Future    CLI       Plugins   Game module
      SDK   SDK    bindings

Above that, one type description:

                     TYPE REGISTRY
                          |
          +---------------+---------------+
          |               |               |
       Inspector     Serialization    Scripting
          |               |               |
          +---------------+---------------+
                          |
                   SAME ENGINE TYPES
LayerPage
How the layers relatelayers.md
Stable C ABIc-abi.md
C++ wrappercpp-sdk.md
Handleshandles.md
Errorserrors.md
Memory, strings, arraysmemory.md
Threads and asyncthreading.md
Versionsversioning.md
One type registryreflection.md
Commands versus runtimecommands.md
Pluginsplugins.md
Game modulegame-module.md
Scripting, language not chosenscripting.md
Automation, wire not chosenautomation.md

Review this doctrine before scene submission, materials, assets, world mutation, plugins, or gameplay grow a public surface. Internal renderer and RHI work stays in-process Rust.