OZ Smart Account Builder on Stellar

Hello. My team and I are building a policy builder on top of OZ Smart Accounts on Stellar, and while researching we hit a couple of things I wanted to check with you.
We were looking at whether spending_limit could constrain a Blend claim(). Two separate things came up:

  1. spending_limit only meters transfer contexts and installs on CallContract. Its enforce rejects any non-transfer context with NotAllowed, so it can't be used to allow-and-cap a claim(). it would deny the claim outright.
  2. The claimed amount is the return value of claim(), not an argument, so nothing at authorization time can read it. A max_claim_amount cap just isn't enforceable for a claim.
    So we ended up writing a custom claim-scoped policy and enforcing to == smart_account as the real safety property, since the actual loophole is an agent redirecting the yield, not claiming too much.
    I wanted to know: is a custom claim-scoped policy the intended pattern here, or is there a composition we're missing?