Real UIKit acceptance for native pointer updates exposed inconsistent initial and mutation rendering identities. render() imports a document into the mutation model, which assigns protocol IDs to legacy descendants, but draws the original unnormalized document. A subsequent targeted style/prop update draws the normalized document instead. The same child is then keyed differently and replaced despite a non-structural update.
The simulator regression fails three child-identity assertions and the final restored hit target. The fix should use one committed normalized document for the initial render and all later renders, preserving controls rather than special-casing pointer policy. Trait refresh should also read the committed root instead of assuming its protocol ID is root.
Related actual acceptance: https://github.com/craft-native/craft/issues/428 and https://github.com/stacksjs/hq.training/issues/339.