Very nice.
So I assume that if one UIA is trading against another UIA, and both have fees, that each one will be charged the appropriate fee prior to being sent to the appropriate party?
And I can imagine that we will see delegates able to specify a similar fee for trading the core asset (BTS or DVS) that can be collected in a similar way as all the other fees? And also a similar thing with private BitAssets which could be collected by the decentralized group that is responsible for making sure the BitAsset works: ensuring appropriate price feeds are available (and paying the price feed providers as necessary), being ready to vote to trigger a forced settlement if the longs are being unfair to the shorts, and perhaps even marketing the BitAsset and running market maker bots.
What would be even cooler is if the manager of the UIAs or private BitAssets was able to specify some conversion rate between the asset and the core asset of the blockchain to pay for transaction fees. For example, a UIA manager could have a pool of BTS from which to pay its users' transaction fees. The UIA manager chooses some (dynamic) UIA/BTS price p for transaction fees. If the user elects to pay the transaction fee with the UIA (also they could put a maximum bound on the UIA amount they are willing to pay as a fee to protect them from malicious managers), the blockchain will multiply the BTS fee the transaction fee f needs to pay (e.g. f = 0.5 BTS) with the price p to get the UIA fee it deducts from the user f*p. It then deposits f*p into the manager's fee pool which it can later collect and automatically deducts f from the UIA manager's BTS pool to collect into the BTS fees to later pay the delegates (or burn). All of this would of course also apply not only to UIA managers but also the decentralized group controlling private BitAssets.