feat: Conv.Geoemb geoembeddings convention codec
Implements the geoemb: convention from
geo-embeddings/embeddings-zarr-convention v1 with full typed codecs:
- Geoemb: type (pixel/chip), dimensions, model, source_data, data_type
plus optional gsd, spatial_layout, build_version, benchmark
- Chip_layout: layout_type (regular_grid/irregular), chip_size, stride
- Quantization: method, original_dtype, quantized_dtype, scale, link
- Scale: tagged union with Scalar (scale+offset) and Array (array_name+nodata)
using case_mem on the "type" discriminant
The Scale tagged union uses case_mem properly — the "type" field is
the discriminant and each case codec omits it from its own members.
zarr-inspect now displays geoemb metadata inline:
geoemb: pixel 128d model=... dtype=int8 gsd=10 layout=utm_zones
quantization: per_pixel_scale float32 -> int8 scale_array=scales
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>