code: function(prop) {
      if (_.isNull(prop[prop.hash_by]) || _.isUndefined(prop[prop.hash_by])) {
        throw new Error("Node constraints violated: The empty field, " + prop.hash_by + ", cannot be used as hash as demanded by 'hash_by'");
      }
      return _.set(prop, 'hash', prop[prop.hash_by])
    }
docs: Updates the prop's hash as demanded by its 'hash_by'. Mutates the object.
  @private
  @param  {JSON} prop The property object
  @return {JSON}      The updated prop
  
  @example
  var prop = {name: 'A', hash_by: 'name'}
  cons.updateHash(prop)
  // => { name: 'A', hash_by: 'name', hash: 'A' }
  
  // prop1 has no 'age'
  var prop1 = {name: 'A', hash_by: 'age'}
  cons.updateHash(prop)
  // Error: The empty field, age, cannot be used as hash