code: function(value, params, property, fields, object) {
              var that = this;
  
              if (!_.isSimpleObject(value)) {
                  throw new Error('Value of property "' +
                      [property].concat(fields).join('.') +'" must be a simple object!');
              }
  
              if ('keys' in params) {
                  _.each(params.keys, function(key) {
                      if (-1 === params.keys.indexOf(key)) {
                          throw new Error('Unsupported hash key "' + key +
                              '" for property "' + [property].concat(fields).join('.') + '"!');
                      }
                  });
              }
              if ('element' in params) {
                  _.each(value, function(key) {
                      value[key] = that.apply(value[key], params.element, property, fields.concat(key), object);
                  }) ;
              }
  
              return value;
          }
docs: Hash property type
  Check 'simple object' type of value, applies 'keys' and 'element' parameters
  
  @param {*}      value    Property value
  @param {object} params   Property parameters
  @param {string} property Property name
  @param {array}  fields   Property fields
  @param {object} object   Object to which property belongs
  
  @throws {Error} if property value does not a simple object
  @throws {Error} if hash has unsupported keys
  
  @returns {object} Processed property value
  
  @this {metaProcessor}