BIP 118's Motivation section says:"Possible alternative approaches would be to define new scriptopcodes, to use a different taproot leaf version, or to use adifferent set of SegWit outputs ... however all of theseapproaches are more complicated, and are better reserved forother upgrades where the additional flexibility is actually needed."What specifically made opcode-level alternatives (e.g. a hypotheticalOP_CHECKSIG_ANYPREVOUT) more complicated than the chosen pubkey-typeapproach? Was it spec effort, implementation effort, or consensussurface area?I'm asking because, in light of recent CSFS (BIP 348) and CAT(BIP 347) discussions, the opcode path now seems tractable. Curioushow the original trade-off was reasoned at the time.