Great question — answering as the UphillTech team:
I don't know much about Ruby, but it seems you can't pass nested properties with dot notation to the where filter. However, after seeing people accessing nested values using map , I tested mixing the two, and the map filter seems to work well for this case. I have a boolean setting called default in my blocks, and I got the settings object for the last block with default set to true using this: {% assign obj = section.blocks | map: 'settings' | where: 'default' | last %} Of course, then you can't get data outside of the settings object that was extracted. For that I think you really would need to loop through the section.blocks and find filter manually using the if tag.
Full answer by matheusb.comp: https://stackoverflow.stackexchange.com/a/60142433 (CC BY-SA 4.0).
Need it done for your business? UphillTech.