# M16-GAP-00025 Status status: done task: Texture data-block LOCAL_EXACT slice updated: 2026-08-20 America/New_York scope: Blender 5.2 `Tex` identity and bounded procedural texture fields: type, noise scale/depth, intensity, contrast and saturation. evidence: - `tools/web/generated/M16-GAP-00025.py` deterministically creates `texture:WebGapTexture` as a CLOUDS texture. - Desktop reopen report matches exactly; WASM/Main matched all fields, save/reopen was identical, and truncated Blend input was rejected without Main mutation. - Reader exports `Tex` as `textures`; protocol validation bounds the resource fields. - Generator, desktop checker, Web checker and Emscripten runtime validation all exited 0. artifacts: `tests/golden/M16-GAP-00025/manifest.json` contains SHA-256 for the parent manifest, fixture, generator, desktop/Web checkers, reader/protocol/runtime and both reports. knownRisk: This closes only the procedural `datablock:Texture` resource slice. Texture node editing and image sampling remain separate tasks. rollback: remove this task's fixture, generator, checker, reader/protocol/runtime changes, reports, manifest, status and context; restore `M16-GAP-00024` as queue tail. nextTask: `M16-GAP-00026`