code: func (m *Time) Unmarshal(data []byte) error {
  	if len(data) == 0 {
  		m.Time = time.Time{}
  		return nil
  	}
  	p := Timestamp{}
  	if err := p.Unmarshal(data); err != nil {
  		return err
  	}
  	// leaving this here for the record.  our JSON only handled seconds, so this results in writes by
  	// protobuf clients storing values that aren't read by json clients, which results in unexpected
  	// field mutation, which fails various validation and equality code.
  	// m.Time = time.Unix(p.Seconds, int64(p.Nanos)).Local()
  	m.Time = time.Unix(p.Seconds, int64(0)).Local()
  	return nil
  }
docs: // Reset implements the protobuf marshalling interface.