<!-- GENERATED by scripts/gen-capability-index.ts — do not edit. Regenerate: bun run gen:capabilities -->

# jgengine — capability index

Reach for these before hand-rolling. Each row is *the thing you need* → *the primitive that already does it*.

## authored-spawn — read spawn points and markers from the editor document

- `authoredSpawnPosition` (function) · `import { authoredSpawnPosition } from "@jgengine/shell/gameKit"`

## authored-triggers — schema'd on/action vocabulary on volumes and markers with runtime dispatch

- `collectAuthoredTriggers` (function) · `import { collectAuthoredTriggers } from "@jgengine/shell/gameKit"`

## chase-view-cycle — cycle a vehicle camera between chase, hood and cockpit views at runtime

- `nextChaseView` (function) · `import { nextChaseView } from "@jgengine/core/runtime/cameraDirector"`

## client-side — input prediction with replay reconciliation

- `createPredictionBuffer` (function) · `import { createPredictionBuffer } from "@jgengine/core/runtime/prediction"`

## collider-autofit — hitboxes and physical bodies fit each kind's rendered model bounds automatically — no hand-tuned sizes

- `GameContextModels` (interface) · `import { GameContextModels } from "@jgengine/core/runtime/gameContext"`

## command-number — validate finite, bounded numbers and integers at command boundaries

- `readInputNumber` (function) · `import { readInputNumber } from "@jgengine/core/runtime/commandInput"`

## command-parse — parse untrusted command input once so every command stage sees typed, bounded values

- `defineCommand` (function) · `import { defineCommand } from "@jgengine/core/runtime/commandRunner"`

## command-quantity — validate bounded whole-item counts at command boundaries

- `readQuantity` (function) · `import { readQuantity } from "@jgengine/core/runtime/commandInput"`

## default-walk-codes — stock WASD + jump key codes for the shell walk controller

- `DEFAULT_WALK_CODES` (const) · `import { DEFAULT_WALK_CODES } from "@jgengine/shell/gameKit"`

## define-game — single public game-authoring path — compose systems, world, presentation, and authored scene in one definition

- `defineGame` (function) · `import { defineGame } from "@jgengine/shell/gameKit"`

## define-system — composable game behavior — pure data + hooks the engine schedules; pass via `defineGame({ systems })`

- `defineSystem` (function) · `import { defineSystem } from "@jgengine/shell/gameKit"`

## devtools-log-bus — a bounded, per-system-tagged log ring a system writes to and a report reads

- `LogBus` (interface) · `import { LogBus } from "@jgengine/core/devtools/logBus"`

## editor-catalogs — Export typed gameplay catalogs for in-editor tuning.

- `EditorCatalogDefinition` (interface) · `import { EditorCatalogDefinition } from "@jgengine/shell/gameKit"`

## fire-input — bind a key or mouse button to a named action that runs the same-named command with the aim; repeatMs auto-fires while held

- `ActionCodesMap` (type) · `import { ActionCodesMap } from "@jgengine/core/authoring"`

## game-system — declare a composable capability with its own schedule and lifecycle

- `SystemDefinition` (interface) · `import { SystemDefinition } from "@jgengine/shell/gameKit"`

## grounded — ground an XZ point onto the world surface as a pose triple

- `grounded` (function) · `import { grounded } from "@jgengine/shell/gameKit"`

## headless-runner — play a real game loop with no renderer — tick, feed input, read the world snapshot

- `HeadlessRunner` (interface) · `import { HeadlessRunner } from "@jgengine/core/runtime/headlessRunner"`

## host-join-code-gate — membership-or-code gate for private hosted servers

- `canJoinPrivateServer` (function) · `import { canJoinPrivateServer } from "@jgengine/core/runtime/hostPolicy"`

## host-join-target — choose or refuse an auto-matched server under a matchmaking mode

- `selectJoinTarget` (function) · `import { selectJoinTarget } from "@jgengine/core/runtime/hostPolicy"`

## host-listing-filter — exclude private sessions from public browse results

- `isListablePublicly` (function) · `import { isListablePublicly } from "@jgengine/core/runtime/hostPolicy"`

## hud-canvas — the HUD root surface — design-resolution scaling plus live panel-placement editing (F2+C)

- `HudCanvas` (function) · `import { HudCanvas } from "@jgengine/shell/gameKit"`

## hud-clock — in-game time-of-day readout bound to the sim clock

- `Clock` (function) · `import { Clock } from "@jgengine/shell/gameKit"`

## hud-coins — currency counter widget bound to a currency id

- `Coins` (function) · `import { Coins } from "@jgengine/shell/gameKit"`

## hud-hotbar — optional inventory hotbar building block — games own slot chrome

- `Hotbar` (function) · `import { Hotbar } from "@jgengine/shell/gameKit"`

## hud-layout — persistent, live-editable HUD panel layout state for `HudCanvas`

- `useHudLayout` (function) · `import { useHudLayout } from "@jgengine/shell/gameKit"`

## hud-panel — anchored HUD slot — drop any widget in a named, player-movable panel

- `HudPanel` (function) · `import { HudPanel } from "@jgengine/shell/gameKit"`

## hud-stat-bar — optional stat-bound bar building block (health, mana, stamina) — prefer game-owned chrome

- `StatBar` (function) · `import { StatBar } from "@jgengine/shell/gameKit"`

## input-recorder — tick-indexed input log for replay, rollback, and regression tests

- `createInputRecorder` (function) · `import { createInputRecorder } from "@jgengine/core/runtime/inputRecorder"`

## local-players — Couch co-op seats: devices hot-join into slots, each with its own user id and input snapshot.

- `createLocalPlayers` (function) · `import { createLocalPlayers } from "@jgengine/core/runtime/localPlayers"`

## loot-table — validate a loot table definition for use with the registry

- `lootTable` (function) · `import { lootTable } from "@jgengine/core/authoring"`

## mount-game — mount a defined game in the browser — `<GameHost playable={game} editor={() => import("@jgengine/editor")} />`

- `GameHost` (function) · `import { GameHost } from "@jgengine/shell/gameKit"`

## multiplayer-offline — explicit solo adapter — omit `multiplayer` instead; offline is the shell default

- `offline` (function) · `import { offline } from "@jgengine/shell/gameKit"`

## multiplayer-p2p — serverless co-op over WebRTC — `multiplayer: p2p({ room })`

- `p2p` (function) · `import { p2p } from "@jgengine/core/runtime/adapter"`

## multiplayer-ws — server-hosted shared world over WebSocket — `multiplayer: ws({ authority: "server" })`

- `ws` (function) · `import { ws } from "@jgengine/core/runtime/adapter"`

## object-slot-inventory — placed objects hold validated per-instance container contents that replicate and save with the placement

- `SceneObjectSlots` (interface) · `import { SceneObjectSlots } from "@jgengine/core/runtime/context/objectSlots"`

## placed-object-rehydrate — rebuild live placed objects, with their state and slot contents, from persisted snapshot rows

- `fromRuntimeObjectRow` (function) · `import { fromRuntimeObjectRow } from "@jgengine/core/runtime/objectRows"`

## placed-object-rows — a placed object's per-instance state and container contents convert to and from the persisted snapshot row a host stores

- `toRuntimeObjectRow` (function) · `import { toRuntimeObjectRow } from "@jgengine/core/runtime/objectRows"`

## pose-interpolation — render entity poses between fixed simulation steps without stutter

- `createPoseHistory` (function) · `import { createPoseHistory } from "@jgengine/core/runtime/poseInterpolation"`

## render-fallback-diagnostics — Enable/disable the dev-only placeholder-fallback probe.

- `armFallbackSeams` (function) · `import { armFallbackSeams } from "@jgengine/core/devtools/fallbackSeams"`
- `armTextureErrors` (function) · `import { armTextureErrors } from "@jgengine/core/devtools/textureErrors"`
- `fallbackSeamsSnapshot` (function) · `import { fallbackSeamsSnapshot } from "@jgengine/core/devtools/fallbackSeams"`
- `reportFallbackSeam` (function) · `import { reportFallbackSeam } from "@jgengine/core/devtools/fallbackSeams"`
- `reportTextureLoadError` (function) · `import { reportTextureLoadError } from "@jgengine/core/devtools/textureErrors"`
- `resetTextureErrors` (function) · `import { resetTextureErrors } from "@jgengine/core/devtools/textureErrors"`
- `textureErrorsSnapshot` (function) · `import { textureErrorsSnapshot } from "@jgengine/core/devtools/textureErrors"`

## runtime — snapshot interpolation

- `createSnapshotBuffer` (function) · `import { createSnapshotBuffer } from "@jgengine/core/runtime/snapshotBuffer"`

## runtime-save — save/load the whole game world through a pluggable backend, autosave or save points

- `createRuntimeSave` (function) · `import { createRuntimeSave } from "@jgengine/core/runtime/runtimeSave"`

## scene-ownership — audit a whole ownership manifest for boundary violations

- `auditManifest` (function) · `import { auditManifest } from "@jgengine/core/authoring"`
- `classifyOwnership` (function) · `import { classifyOwnership } from "@jgengine/core/authoring"`
- `collectOwnershipDiagnostics` (function) · `import { collectOwnershipDiagnostics } from "@jgengine/core/authoring"`
- `isSceneOwnershipManifest` (function) · `import { isSceneOwnershipManifest } from "@jgengine/core/authoring"`
- `ownershipKey` (function) · `import { ownershipKey } from "@jgengine/core/authoring"`

## seeded-random — injected deterministic randomness for game logic — never `Math.random` in a simulation

- `seededRng` (function) · `import { seededRng } from "@jgengine/shell/gameKit"`

## sim-loop — fixed-step or variable simulation stepping with tick count, catch-up cap, and interpolation alpha

- `createSimLoop` (function) · `import { createSimLoop } from "@jgengine/core/runtime/simLoop"`

## sim-snapshot — capture and restore whole-simulation state for replay, rollback, and regression tests

- `createSimSnapshotRegistry` (function) · `import { createSimSnapshotRegistry } from "@jgengine/core/runtime/simSnapshot"`

## typed-keyed-store — a cast-free typed handle onto a per-owner keyed family of reactive game-store slots, replayable and host-authoritative

- `defineKeyedStore` (function) · `import { defineKeyedStore } from "@jgengine/shell/gameKit"`

## typed-store — a cast-free typed handle onto one reactive game-store slot, replayable and host-authoritative

- `defineStore` (function) · `import { defineStore } from "@jgengine/shell/gameKit"`

## warn-once — emit a dev-only warning a single time per call site

- `warnOnce` (function) · `import { warnOnce } from "@jgengine/core/devtools/warnOnce"`

## world-chunk-key — map world positions to persisted chunk keys at a declared cell size

- `chunkKeyOf` (function) · `import { chunkKeyOf } from "@jgengine/core/runtime/worldChunks"`

## world-chunk-write — mutate a snapshot's chunk and have the host persist it

- `setChunk` (function) · `import { setChunk } from "@jgengine/core/runtime/worldChunks"`

## world-convergence — derive environment coordinate content from the scene document

- `environmentContentFromDocument` (function) · `import { environmentContentFromDocument } from "@jgengine/shell/gameKit"`

## world-environment — compose editor/preset-derived outdoor dressing — terrain, weather, water, structures — into a legacy environment feature

- `environment` (function) · `import { environment } from "@jgengine/shell/gameKit"`

## world-item-pickup — pick up dropped items: ctx.scene.worldItem nearestInRadius → pickup into the player's inventory

- `SceneWorldItemContext` (interface) · `import { SceneWorldItemContext } from "@jgengine/core/runtime/gameContext"`
