public override void Put(IDataWriter wr_)
		{
			var fs_ = Descriptor.Fields;
			if(HasName) wr_.AsString(fs_[0], _name);
			if(_m1.Count > 0) wr_.AsRepeated(fs_[1], _m1.Items);
			if(_m2.Count > 0) wr_.AsRepeated(fs_[2], _m2.Items);
			if(_m3.Count > 0) wr_.AsRepeated(fs_[3], _m3.Items);
		}
		public override void Put(IDataWriter wr_)
		{
			var fs_ = Descriptor.Fields;
			if(HasVals) wr_.AsMessage(fs_[0], Vals);
			if(HasReps) wr_.AsMessage(fs_[1], Reps);
			if(_lots.Count > 0) wr_.AsRepeated(fs_[2], _lots.Items);
			if(HasTags) wr_.AsString(fs_[3], Tags);
		}
		public override void Put(IDataWriter wr_)
		{
			var fs_ = Descriptor.Fields;
			if(HasId) wr_.AsInt(fs_[0], _id);
			if(HasName) wr_.AsString(fs_[1], _name);
			if(HasAlign) wr_.AsEnum(fs_[2], (int)_align);
			if(_weights.Count > 0) wr_.AsRepeated(fs_[3], _weights.Items);
		}
		public override void Put(IDataWriter wr_)
		{
			var fs_ = Descriptor.Fields;
			if(_i32.Count > 0) wr_.AsRepeated(fs_[0], _i32.Items);
			if(_i64.Count > 0) wr_.AsRepeated(fs_[1], _i64.Items);
			if(_str.Count > 0) wr_.AsRepeated(fs_[2], _str.Items);
			if(_bts.Count > 0) wr_.AsRepeated(fs_[3], _bts.Items);
			if(_bln.Count > 0) wr_.AsRepeated(fs_[4], _bln.Items);
			if(_flt.Count > 0) wr_.AsRepeated(fs_[5], _flt.Items);
			if(_cur.Count > 0) wr_.AsRepeated(fs_[6], _cur.Items);
			if(_dbl.Count > 0) wr_.AsRepeated(fs_[7], _dbl.Items);
			if(_dat.Count > 0) wr_.AsRepeated(fs_[8], _dat.Items);
			if(_si32.Count > 0) wr_.AsRepeated(fs_[9], _si32.Items);
			if(_si64.Count > 0) wr_.AsRepeated(fs_[10], _si64.Items);
			if(_ui32.Count > 0) wr_.AsRepeated(fs_[11], _ui32.Items);
			if(_ui64.Count > 0) wr_.AsRepeated(fs_[12], _ui64.Items);
			if(_dec.Count > 0) wr_.AsRepeated(fs_[13], _dec.Items);
			if(_chr.Count > 0) wr_.AsRepeated(fs_[14], _chr.Items);
			if(_enu.Count > 0) wr_.AsRepeated(fs_[15], _enu.Items);
			if(_f32.Count > 0) wr_.AsRepeated(fs_[16], _f32.Items);
			if(_f64.Count > 0) wr_.AsRepeated(fs_[17], _f64.Items);
		}