According to Gridarta and the wiki, altars can match based on arch and name (but not title), while check_inv can match based on arch, slaying, or type.
This means that if I have an "arch axe" with "name Big Axe", I can use an altar that accepts it by "slaying Big Axe", but with check_inv, I can't distinguish between this and any other "arch axe". It would be great if these were unified so that both had the same matching capabilities. Maybe this could be extended to pedestal and detector as well?
For that matter, it seems like maybe a single item type could take care of all scenarios. If check_inv can already remove items from your inventory, then we just add a flag to determine if it recursively checks inventories. That should more or less cover the majority of scenarios, such as:
I guess there might still be some room for two different behaviors:
If we only check once a tick, it's possible for a player/spell to run over and past the tile in one tick, meaning we never detect it.