This document describes how to publish the operation semantics schemas at stable URLs.
The schema $id should be a stable, resolvable URL that remains consistent across versions:
https://{your-domain}/schemas/x-intentops-semantics/v1/schema.json # Preferred
https://{your-domain}/schemas/x-intent/v1/schema.json # Legacy
The schemas are published via GitHub Pages at:
https://shaalin.github.io/x-intent-schema/schemas/x-intentops-semantics/v1/schema.json # Preferred
https://shaalin.github.io/x-intent-schema/schemas/x-intent/v1/schema.json # Legacy
To migrate to a custom domain, update the $id in both schema files and configure DNS.
Use versioned paths to allow breaking changes in future schema versions:
/schemas/x-intent/v1/schema.json # Current stable
/schemas/x-intent/v2/schema.json # Future breaking changes
The ver field inside documents indicates which schema version they target. Consumers can validate against the correct schema based on this field.
To serve the schema directly from this repo:
- Enable GitHub Pages in repo settings (source:
mainbranch, root/) - The schema will be available at:
https://{org}.github.io/{repo}/schemas/x-intent/v1/schema.json - Optionally configure a custom domain for cleaner URLs
- Add a
CNAMEfile to the repo root with your domain - Configure DNS to point to GitHub Pages
- Update the schema
$idto match the custom domain
Consumers can validate x-intent documents by fetching the schema from the published URL:
# Fetch schema and validate locally
curl -O https://shaalin.github.io/x-intent-schema/schemas/x-intent/v1/schema.json
python validate.py- Keep URLs stable. Once published, avoid changing the schema URL for a given version.
- Version for breaking changes. Use
/v2/paths for incompatible schema changes. - Document the canonical URL. Reference the published
$idin integration guides.