SmObject type system, AssertValid and Notify (user then system callback;
NotifyCallback::execute added to geom.context), the scoped
TemporaryChangeValue guard, and SmShape (empty shapes exact; non-empty
shapes return Unported on topology.brep_p1/face_p2/edge/vertex).
difftest: 624 cases, 593 pass bit-identical, 31 deferred.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>