# M12-01A Status status: done task: inventory Blender 5.2 AssetMetaData, tag, and catalog fields updated: 2026-08-17 America/New_York enablingTask: true parityStateChange: false ## Scope The machine inventory freezes the Blender 5.2 storage and public API surface needed before designing a full-parity Web catalog schema. It covers every `AssetMetaData` DNA member, the `AssetTag` storage and collection operations, actual `AssetMetaData` RNA properties, Blend read/write participation, `AssetCatalog` semantic/runtime fields, catalog definition file version/record order, path hierarchy rules, and the current Web v1 interface snapshot. This task deliberately does not create the desktop catalog fixture, Web schema v2, migrations, IndexedDB behavior, or a new verified parity slice. In particular, a source inventory is not evidence that Web preserves or writes the inventoried fields. ## Findings - `AssetMetaData` has 14 DNA members: 10 persisted semantic/UI members, custom `IDProperty` metadata, one runtime type pointer, one derived tag count, and ABI padding. The real Blender runtime exposes 10 RNA properties. - `author`, `description`, `copyright`, and `license` are optional dynamic strings. Empty values are valid Blender state; the existing Web v1 manifest currently requires non-empty author/license and has no description/copyright fields. - `catalog_id` is the authoritative RFC4122 identity. `catalog_simple_name` is a read-only recovery copy and cannot replace the UUID-to-path mapping. - Catalog hierarchy is implicit in a cleaned UTF-8 slash path. CDF v1 records `UUID:path:simple_name`; no parent UUID is stored. Duplicate paths are legal and resolve deterministically by first-loaded state and UUID. - Existing Web v1 directly represents catalog ID, tags, author, and license, but misses seven inventoried metadata semantics and models hierarchy as an explicit `parentId` graph. ## Evidence - `npm --prefix web run test:asset-catalog-inventory` passed on the first complete run: `dna=14 rna=10 tag=3 catalog=3 gaps=7 next=M12-01B`. - The checker binds eight source SHA-256 values, extracts the RNA property declarations, launches `Blender 5.2.0 LTS --factory-startup --background`, compares the actual runtime property identifiers/types/read-only flags, verifies Blend IO markers and CDF v1 format, and uses the TypeScript AST to freeze the current Web interfaces. - The inventory manifest SHA-256 is `194d5fd0fef5044f5e82a51931a061e226445f0f53410af9dc0594c70a79e936`; the checker SHA-256 is `38839f47dbe82ad7931e5e444e124e87b64a604d9358be6d71cce7769439e57b`. ## Next Task `M12-01B`: generate a desktop Blender 5.2 catalog v1 fixture and canonical JSON from the inventoried fields. Do not begin Web schema v2 until that desktop artifact is verified. ## Rollback Remove the inventory manifest, checker, package command, and this status entry; restore M12-01A to pending and move `nextTask` back from M12-01B. No parity ledger rollback is needed because this enabling task did not change a family slice.