I had to refactor script to make this possible, which is what instigated the recent refactor. We’ve be holding the full script as a data vector, despite parsing it. This was because scripts can terminate in unparseable data. But this must be retained for serialization, as it’s valid if not executed (eg coinbase inputs). So we now have a flag in operation that indicates that the op is raw data for serialization. Originally this was attempted with a raw_data opcode, but this overloaded a potentially valid opcode. So now we can move to pointer stacks from deserialized pointer push-data ops.
(edited)