Yeah, those are wrong.
at LAN:
block, proto any, source any, destination OPT1 subnet
block, proto any, source any, destination OPT2 subnet
pass, proto any, source lan subnet, destination any (default LAN to any)
at OPT1:
block, proto any, source any, destination LAN subnet
block, proto any, source any, destination OPT2 subnet
pass, proto any, source OPT1 subnet, destination any
at OPT2:
block, proto any, source any, destination LAN subnet
block, proto any, source any, destination OPT1 subnet
pass, proto any, source OPT2 subnet, destination any
You always block incoming traffic at an interface.