Range of Block Detection into running a function?

(1.19.2) What would a tick.function that searches for a set of blocks look like? Specifically: a fire tile, a water cauldron above it, and a range of air blocks above the cauldron? I'm planning on making steam power a form of redstone power in this pack I'm working on (although I might change it away from being redstone but it will behave the same)

Continue to help post