AssetManifest
Generated from engine/assets/asset_manifest.h at 862e08b. The text under each declaration is the header's own comment, word for word. About the reference says how these pages are made.
#include "engine/assets/asset_manifest.h" · namespace labrador
struct AssetEntry
Section titled “struct AssetEntry”One asset to load: what it is, where it lives, and what it is called.
kind is a key into whatever kinds the loader has been taught, not something this type interprets. The engine ships four and a game adds its own, so the set is open by construction and no engine header has to learn the word "level" (T1).
name is both the file's stem and the registry name the asset lands under. They are deliberately one string: a manifest saying "sprite_sheet_1" names a file a person can go and find, where a loader told both separately would let the two drift.
kind · directory · name
Section titled “kind · directory · name”std::string kind;std::string directory;std::string name;optional
Section titled “optional”bool optional = false;Whether the game still runs when this file is not there.
False for everything by default, because T6 says a broken contract stops the game dead with the reason on screen. This is how a piece of content states that its absence is not a broken contract - and it is stated in the manifest, by the person who knows, rather than guessed at by a loader.
The case it exists for: a wave bank built from source audio that cannot be distributed is not in a fresh clone, and the game would otherwise throw at startup on the very file its manifest names. What the loader substitutes is the kind's business; what this says is only that it may.
struct AssetManifest
Section titled “struct AssetManifest”Everything a game is made of, as data the loader walks rather than filenames spelt into source (T7). Adding a level or a font is editing this file; the loader is not rebuilt and does not change.
It is also what a device restore replays, which is why the loader keeps it rather than consuming it - see ResourceLoader::reload_device_resources.
source_path
Section titled “source_path”std::string source_path;Where it was read from, so a bad entry can name the file it came out of and not just itself (T6).
entries
Section titled “entries”Walked in order: the file's order is the load order, so a kind that has to exist before another can be sequenced by moving a line.
In the samples and tests
Section titled “In the samples and tests”The files that include this header directly. A file can also reach it through another header.
tests/app/content_root_tests.cpp
Development documentation (unreleased). Built from Labrador 862e08b of 2026-10-08.