code: function(schema, global) {
    var {
      required
    , properties
    } = schema;
  
    if ( !required ) {
      // no required fields, return empty object
      return {};
    } else {
      return required
        .reduce(function(prev, next) {
          var s = properties[next];
          if ( !s ) {
            throw new Error(`property \`${next}\` not defined on object`);
          }
          prev[next] = empty(s, global);
          return prev;
        }, {});
    }
  }
docs: >> object <<