With a59aa9bb37 we can now provide an object with user set attributes.
a59aa9bb37
The first set geometry is considered the default. As an added bonus, we're back to a single argument constructor. Later, we could allow a schema to be set. This would be done before setting values (calling constructor with no args).