# M16-GAP-00011 Status status: done task: Library data-block LOCAL_EXACT slice updated: 2026-08-19 America/New_York scope: Blender 5.2 Library metadata for one linked, project-relative source: stable id/name/path, packed state, external-required status, dependency list and read-only contract. evidence: - `tools/web/generated/M16-GAP-00011.py` generated a real linked-Library fixture from `WebGapLibrary.blend`; the target reopens in Blender desktop. - Desktop report matched one `library:WebGapLibrary.blend` with `sourcePath=//WebGapLibrary.blend`, unpacked external-required state, empty dependencies and read-only=true after save/reopen. - WASM/Main opened the same target fixture and matched the desktop identity and path. WASM save/reopen matched the complete `libraries` snapshot exactly. - A truncated malformed Blend submitted to an already loaded Main was rejected and the original snapshot remained unchanged. - `build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00011.py -- tests/files/web/generated/M16-GAP-00011-datablock-Library.blend` exited 0. - `npm --prefix web run test:generated-gap -- --task M16-GAP-00011` exited 0. - `node tools/web/check-generated-gap.mjs --task M16-GAP-00011` exited 0. artifacts: `tests/golden/M16-GAP-00011/manifest.json` contains SHA-256 for the parent manifest, target fixture, source library, generator, desktop/Web checkers, reader/protocol/runtime and both reports. knownRisk: This closes one `datablock:Library` metadata slice only. Library link/append/override operations, archive management, packing/unpacking and all other generated gaps remain separate tasks. rollback: remove this task's fixture, source library, checker, reports, manifest, status and context; restore `M16-GAP-00010` as the queue tail without editing its successful evidence. nextTask: `M16-GAP-00012`