Deferred from #368 (decision 9). The Annotations panel ships row-level reassignment (#378: replaceAnnotationCommand, geometry-incompatible classes disabled with the reason inline). This issue tracks the second anchor for the same component: a picker anchored to the selected shape on the canvas (right-click or tag affordance), reusing the identical class list, legality rendering, and command. No new rules — same component, second mount point. cf. #368.
Deferred from #368 (decision 9). The Annotations panel ships row-level reassignment (#378:
replaceAnnotationCommand, geometry-incompatible classes disabled with the reason inline). This issue tracks the second anchor for the same component: a picker anchored to the selected shape on the canvas (right-click or tag affordance), reusing the identical class list, legality rendering, and command. No new rules — same component, second mount point. cf. #368.