Using TokenId as input to transaction

How would using a tokenId as input to an 'action' transaction look like?

Since tokenID is an implicit attribute, I assume that when an action has 2 tokenIDs, we get an implicit array attribute. I have written a candidate here:

        <ts:transaction>
            <ts:ethereum contract="Kitty" function="breedWithAuto">
                <ts:data>
                    <ts:address>0x16baf0de678e52367adc69fd067e5edd1d33e3bf</ts:address>
                    <ts:uint256 ref="tokenId[0]"/>
                    <ts:uint256 ref="tokenId[1]"/>
                </ts:data>
            </ts:ethereum>
        </ts:transaction>

This supplies instruction to the handling agent (wallet mainly) to supply two tokenIds to the transaction. However those are selected is up to the UX designer.

The wallet should pick up that the inputs are individual tokens, and so it should ask the user to select tokens from the previous view where all the tokens on the currently selected account which are belonging to that token contract are displayed.

When exposing multiple tokenIds to the 'props' structure for use in the view, it's necessary to call the array something different from 'tokenId', otherwise the array clashes with the existing 'tokenId' definition. Either we replace the existing tokenId with an array and have the [0] member the original tokenId, or better keep the original tokenId and add 'tokenIds[]' array so the props looks like this:

web3.tokens.data.currentInstance = {
  name: "HyperKitties",
  tokenId: "7701",
  tokenIds: [ "7701", "6145" ],
  ...
};

Therefore, it may be preferable to use 'tokenIds[0]' and 'tokenIds[1]' in the <ts:data> field in the transaction declaration.

Alternatively we can use a more descriptive syntax such as this:

       <ts:attribute-type id="kittyMom" syntax="1.3.6.1.4.1.1466.115.121.1.36">
            <ts:origins>
                <ts:data>
                    <ts:uint256 ref="tokenId"/>
                </ts:data>
            </ts:origins>
        </ts:attribute-type>
        <ts:attribute-type id="kittyPop" syntax="1.3.6.1.4.1.1466.115.121.1.36">
            <ts:origins>
                <ts:data>
                    <ts:uint256 ref="tokenId"/>
                </ts:data>
            </ts:origins>
        </ts:attribute-type>
    <ts:transaction>
        <ts:ethereum contract="Kitty" function="breedWithAuto">
            <ts:data>
                <ts:address>0x16baf0de678e52367adc69fd067e5edd1d33e3bf</ts:address>
                <ts:uint256 ref="kittyMom"></ts:uint256>
                <ts:uint256 ref="kittyPop"></ts:uint256>
            </ts:data>
    </ts:transaction>