We are not really using an instance of Zarr object in a meaningful way currently. There is no meaningful state and you can only use it to either read or write once, and can't really keep using it after that. The Zarr class might make more sense as a collection of static utility methods. We can also see if we can reduce cases where we have to validate the same inputs in several places.