#!/usr/bin/perl
#use Mooix::Thing;
run sub {
	my $this=shift;
	%_=@_;
	my $id=$_{id} || $this->usage("id field required");
	delete $_{id};

	return unless $this->defines($id);
	
	my @values=$this->$id;
	my @fields=$this->logfields;
	
	my %values;
	foreach my $field (@fields) {
		$values{$field}=shift @values;
	}
	
	# The map does explicit stringification of the new values, which
	# may include object references.
	%values=(%values, map { "$_" } %_);
	
	@values=();
	foreach my $field (@fields) {
		push @values, $values{$field};
	}
	$this->$id(@values);

	return $id;
}
