Table of Contents

Class ContentAssetRecord

Namespace
GrindFest.Content
Assembly
GrindFest.dll

One addressable asset, as recorded in the generated assets.json.

[Serializable]
public sealed class ContentAssetRecord
Inheritance
object
ContentAssetRecord

Fields

address
group
labels
name
path

Project-relative asset path. Addresses are stable identities, but they are not always a usable path (some entries carry a hand-written address), so the path is recorded separately.

refs

Addresses this asset directly depends on, kept to those that are themselves addressable - the edges of the content graph. Deliberately direct rather than transitive: a closure is derivable by following the edges (ScopeOf(string)), whereas storing every closure would multiply the size of a file that is parsed during boot. This is what turns a load scope from guesswork into a query (CONTENT_SYNC_LOAD_AUDIT.md section 4.1).

Only the generator fills this. A catalogue written before format 2, and every mod catalogue, deserializes it as null - treat null and empty alike (use RefsOf(string)).

subAssetType

For an address that names an object inside an asset (Assets/…/Praying End.fbx[Praying End]), the type of that object when the declaration states it ([Praying End:AnimationClip]).

It travels in the catalogue because the name alone does not identify an object: Praying End.fbx holds an Animator and an AnimationClip of that name, and this is the disambiguator the runtime key already uses (AssetLibrary.KeyFor = address|TypeName). Null for a whole asset, and for a sub-asset whose type the declaration leaves out - in which case the generator refuses a hierarchy node and reports the choice.

tier
type