# M16-GAP-00021 Status status: done task: Screen data-block LOCAL_EXACT slice updated: 2026-08-19 America/New_York scope: Blender 5.2 `bScreen` identity and bounded editor layout observability through the linked editor workflow: four areas, editor types and regions. evidence: - `tools/web/generated/M16-GAP-00021.py` renamed the factory startup screen to `WebGapScreen`, preserving its deterministic four-area layout. - Desktop report reopened after save and matched exactly: `screen:WebGapScreen`, four areas, `VIEW_3D`, `OUTLINER`, `PROPERTIES`, `DOPESHEET_EDITOR`, and 18 regions. - WASM/Main opened the same fixture with editor workflow available, matched the corresponding workspace area/editor set and save/reopen matched the complete workflow 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-00021.py -- tests/files/web/generated/M16-GAP-00021-datablock-Screen.blend` exited 0. - `npm --prefix web run test:generated-gap -- --task M16-GAP-00021` exited 0. - `node tools/web/check-generated-gap.mjs --task M16-GAP-00021` exited 0. artifacts: `tests/golden/M16-GAP-00021/manifest.json` contains SHA-256 for the parent manifest, fixture, generator, desktop/Web checkers, reader/protocol/runtime and both reports. knownRisk: This closes one `datablock:Screen` layout-observability slice only. Editor operations, workspace mutation and all other generated gaps remain separate tasks. rollback: remove this task's fixture, generator, checker branch, reports, manifest, status and context; restore `M16-GAP-00020` as the queue tail without editing its successful evidence. nextTask: `M16-GAP-00022`