/// <summary>
 /// Creates a new data item with a globally-unique identifier. If a
 /// unique identifier is not provided, it could result in collisions
 /// while retrieving instances.
 /// </summary>
 public DataItem(
     ulong guid,
     DataItemTypes type)
 {
     this.guid  = guid;
     this.type  = type;
     properties = new Dictionary <string, object>();
 }
 /// <summary>
 /// Creates a deep copy of another data item.
 /// </summary>
 public DataItem(DataItem item)
 {
     guid       = item.guid;
     type       = item.type;
     properties = new Dictionary <string, object>(item.properties);
 }