I'd say that the only reasonable way to implement item removing. We use `itemTriggers` to check if we should spawn the event. Then, when the time has come, at the very beginning of the process, even before opening the state, we process this removing item event's property. We cycle through all player bases to find and delete the item. If we fail to do so, we terminate the event, deleting it from the save before the event state would occur.
A bit more code if you want to handle multiple items, you would need to check if you can delete all of them, and only then delete it. Probably, it is worth to invest in some RNG in case when we can delete item from different base, so this would be less predictable.
Not very elegant, I guess, as now all event logic is located in its state. BTW, that is why I initially made it like a savegame thing (like alien missions), with visible state displayed only if desired.