A comment here explaining that we are intentionally not matching against the protocol would help! Something like "don't check the protocol - we delegate that to the calling function" Or even put it in the docblock so it's clear what's the API contract here.