Deal with field that may or may not be present
I'm trying to write a working parser for the bitcoin protocol and enjoying every bit of kaitai. Everything is working fine so far until this part:

![image](https://user-images.githubusercontent.com/67417714/115838963-7a20b180-a41a-11eb-83ff-994453432508.png)

I was hoping to get it to work like this:

```  
transaction:
    seq:
      - id: version
        type: u4
      - id: has_witness
        type: u2be
      - id: transaction_data_with_witness
        type: transaction_data
        if: has_witness == 1
      - id: transaction_data
        type: transaction_data
        if: has_witness != 1
        pos: -2
```

However it seems that I can't backtrack. So how would I go about shifting the transaction data seq back 2 bytes if the flag isn't present?

I found an issue that seems to be related: #722 but not answering my question.