# M16-GAP-00216 Status status: done task: armature.assign_to_collection operator LOCAL_EXACT slice updated: 2026-08-22 America/New_York scope: - The minimal fixture contains one armature with source and target bone collections, one parent bone, and one selected child initially assigned only to the source collection. - Desktop runs `ARMATURE_OT_assign_to_collection(collection_index=1)` with `poll=true` and `FINISHED`, assigning the child to the target collection and preserving both memberships through save/reopen. - The Main reader now exposes bounded armature `boneCollections` entries with collection name/index and member bone IDs. No other collection, editor, or browser behavior changed. evidence: - The reader rebuild, generator, desktop checker, npm comparator, direct comparator, and task-context checks passed. Repeated checker runs recognize the persisted assignment and remain idempotent. - WASM/Main observes source and target membership for the same child bone, preserves it across save/reopen, and rejects malformed Blend input without Main mutation. - Chromium-only policy was preserved; no Firefox/WebKit run was made. nextTask: `M16-GAP-00217`