A few more points:
* To Ron's question, I believe smart properties and everything else are assigned an ID from a single 4 byte namespace, right? That means a bit over 4.29 billion possible for everything, or does each entity type (e.g. smart properties, buy/sell items, etc) have their own namespace (maybe I missed this in the spec)?? 32-bits sounds like a lot, but that may go quicker than you think, kind of like 640KB of RAM.
* Regarding currency ID creation, if we have multiple smart properties created within the timespace of the same block, the spec needs to be clarified to deal with this, I think. As transactions within a block have no natural order, how should we deal with that?
* Do Smart Properties have anything to do with this item buying/selling? If not, wouldn't it make more sense to create a Smart Property, then have the ability to sell, bid on, or buy that smart property, instead of having two separate classes of A) smart properties, and B) items that are offered for sale out of no where? That, or keep the latter, but add the ability for buy/sell to smart properties as well. In any case, it's a bit muddy in the spec.
*
Here's an interesting one: Looking at the spec, I'm thinking that the current way of having a 21-byte description for a smart property, or a category/item name for an item is limited to the point of not being useful. Say for example, you want to store a house deed as a smart property. How would you do that? Put the physical home address in the 21-byte field? What if the full address was > 21 bytes? What if I had a house transferred via Mastercoin, and then some disputes came up around the land rights, or land dimensions? A simple physical address won't help me (maybe I'm totally missing the point).
In any case, two options here to make this more useful, for both smart properties, and buy/sell items (as they currently exist):
-OPTION 1: Store a bit torrent hash code (e.g. "magnet link" - see
http://news.softpedia.com/news/BitTorrent-Magnet-Links-Explained-132536.shtml) in the message. That will then allow us to essentially store and distribute the data for these secured assets via bittorrent...which takes care of P2P, data validity, etc issues, and offers some level of anonymity. A future smartproperty client could take care of initially seeding the torrent, and then taking that magnet hash code and putting it into the MSC transaction. This gets me excited just thinking about it.... so I could create a torrent for my 21-page house deed PDF, and then the bittorrent hash goes into the Mastercoin transaction. Cool!!
(We could even think of ways of compensating folks that maintain seed nodes for these transactions from MSC transaction fees, in the future.)
-OPTION 2: Operate a side-chain optimized around storing these kinds of assets. This side chain would probably not generate its own useful currency. Instead, instead of the fees being destroyed, they could be used to compensate the miners of this sidechain for securing it (and storing the data in it). E.g. the miner that solves block #4930 in the side chain gets any fee rewards from MSC transactions in bitcoin block #49202929.