So to create a request I discover one must do create_entity using "item-request-proxy" entity name then I saw that item_request_proxy return the "The first found item request proxy targeting this entity." so that mean we should be able to create more than one "item-request-proxy" for the same entity. I tested and yes, that work.
So far so good, I use all of this to try to upgrade modules quality, and then I have a problem because I want to be able to cancel an upgrade, or even downgrade a module request, and I want to do that only if there is not this module quality in storage and it's still not being done, I did some test and is_registered_for_construction() look to work as expected but the problem is that is_registered_for_construction only return false if ALL request item are being not registered for construction (or at least according to my small testing). I wish to be able to know this for individual request. (could is_registered_for_construction return false if at least one request items is being constructed ? or could I ask for such feature with another api function like all_is_registered_for_construction )
Then back to start, I could do that by creating one item-request-proxy by module I want to upgrade. This way I could know with is_registered_for_construction that it's being done, but then the problem is how to retrieve all "item-request-proxy" for one entity. Cause item_request_proxy only return the first one. I guess I could do find_entities filter for "item-request-proxy" (and maybe position) then check for proxy_target. But this mean I need O(n) for one entity. Does item_request_proxy property already do an O(n) search anyway ? could we have a item_request_proxies[] property ?
Linked to Ability to put module ghost into module inventory
What are my other options ? did I miss the obvious ? What would you do ?
My brain right now (even if the simple fact it's possible to do all that is already amazing that very hard to understand



