refactor: extract storage union to separate lexicons and add validation improvements
Refactored dataset.record storage union for modularity and consistency:
Storage Union Extraction:
- Extracted #storageExternal to ac.foundation.dataset.storageExternal lexicon
- Extracted #storageBlobs to ac.foundation.dataset.storageBlobs lexicon
- Removed inline storage defs from record lexicon
- Changed union refs to point to external lexicons
- Removed 'type' field from storage objects (using $type discriminator)
This follows the pattern established for schemaType and arrayFormat,
providing better modularity and enabling future storage types without
modifying the record lexicon.
Validation Improvements:
- Added format: "at-uri" validation to schemaRef field
- Enhanced metadata field description (clarifies role vs top-level fields)
- Aligned license/tags descriptions with Schema.org (like sampleSchema)
- Increased maxLength for license (200) and tags (150) for SPDX URLs
Documentation:
- Added record_lexicon_assessment.md with design rationale
- Updated examples to use $type discriminators
Examples now use:
- "$type": "ac.foundation.dataset.storageExternal" (was "type": "external")
- "$type": "ac.foundation.dataset.storageBlobs" (was "type": "blobs")
🤖 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.