Currently, the "Make Asset" operator uses runtime RNA pointer properties to get the data to operate on (ie from the Outliner selection). According to other devs this is not something we should do.
Instead bContext could store a list of selected items (wrapped into PointerRNA, so the data type can be identified?). Various editors could fill this list then.
Note that this would solve further issues:
- Redundant work by the operator because it currently has to be called individually for each data-block.
- The operator can handle undo itself.
- Other editors could expose "Make Asset". The poll callback could check context to see if it can be executed (addressing T82676).