refactor: add extensible array format system with versioned registry and canonical URLs
Replaced single ndarrayShimUri field with extensible array format system:
Array Format Changes:
- Removed 'ndarrayShimUri' (single URI, not extensible)
- Added 'arrayFormatVersions' object mapping format names to semver
- Example: {"ndarrayBytes": "1.0.0"}
- Supports multiple formats simultaneously if needed
ArrayFormat Registry:
- Created ac.foundation.dataset.arrayFormat lexicon
- Token-based registry with knownValues pattern (like schemaType)
- Current formats: ndarrayBytes (numpy .npy binary format)
- Enables adding new formats (Arrow, Protobuf, etc.) without breaking changes
Canonical URLs:
- Foundation.ac maintains shim schemas at predictable URLs
- Pattern: https://foundation.ac/schemas/atdata-{format}-bytes/{version}/
- Example: https://foundation.ac/schemas/atdata-ndarray-bytes/1.0.0/
Metadata Refinements:
- Removed 'author' field (ATProto records have creator DIDs)
- Enhanced 'license' to support SPDX identifiers/URLs (Schema.org alignment)
- Enhanced 'tags' description (Schema.org keywords alignment)
Documentation:
- Added README_ARRAY_FORMATS.md explaining registry pattern
- Documents version evolution and codegen integration
This follows ATProto token pattern for extensible type systems.
Closes #68
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This is a binary file and will not be displayed.