JARVIGManual

ADR-0012 — Content-addressed derived data

Status: Accepted Date: 2026-09-22

Context

Baked meshes, textures, shaders, and collision must be reproducible. A timestamp cache hides which input changed.

Decision

A derived key is SHA-256 over source bytes, import settings, importer version, engine format version, target platform, and feature flags. Canonical JSON makes object key order irrelevant. Missing values throw instead of being omitted. Cooked products are not committed except golden fixtures. The disk cache directory is gitignored.

Alternatives Considered

  • Last-modified timestamps. Rejected. They do not capture tool or flag changes.
  • A single global cache key per file path. Rejected. Settings and platform would alias.

Consequences

Importers and compilers must version themselves. A silent behavior change without a version bump is a cache bug.

Supersedes

Nothing.

Superseded By

Nothing.