Plugins can no longer forge another plugin's buttons or rewrite the rendering envelope around them.
What's wrong with this entry?
Plugin hooks that alter the UI are now validated. A hook that returns a button it did not itself draw throws, and any rewrite must keep the surface, component and request id the engine set, keep the plugin identity, and preserve the origin on a user-message row. Hooks that answer with an origin or a wait the engine never set are rejected the same way.
- Applies to the chain of hooks plugins register on rendered UI, not to a specific plugin type.
- The rejection names which field changed and states that the envelope belongs to the engine.
a changed ${r} (the envelope is the engine's; a rewrite keeps surface, component and requestId)
Strings lifted out of the shipped bundle, so the claim above can be checked against them.