Alire crate index JSON ====================== crates.json is the aggregate catalog. Its schema_version is currently 4. Each crates/.json file contains the same package object plus the catalog schema_version, generated_at, canonical_url, catalog provenance, and index metadata. The catalog revision is the exact Git commit rendered by this build. Each package records latest_version, selected_version, and development_only. selected_version is the newest non-dev release when one exists; otherwise it is the newest development release. Every version has a path and manifest field. The manifest is a lossless JSON representation of the corresponding TOML manifest, subject only to TOML date and time values being represented as ISO 8601 strings. The same manifest object is also available directly at crates///manifest.json. Every version has a dependencies array resolving each declared version set against the ordered Flyology and community catalogs. It records conditional branches, the catalog and package supplying the dependency, the selected release, and the version exposed through provides. A system external resolves to the synthetic system release because its concrete version is detected on the user's host rather than known at site-build time. Every version also has a dependants array listing the indexed releases that depend on it, grouped by crate name and ordered newest version first. Each entry records the dependant's name, version, development flag, path, and whether that version is its crate's selected one. The requires field names the crate the dependant asks for and provided_version is the version this release carries under that name, so a toolchain declaring provides = ["gnat=16.2.0"] is resolved as gnat 16.2.0. The requirement field is the declared version set and qualifies reports whether provided_version satisfies it, following Alire's semantic_versioning rules. A null qualifies value identifies a system external whose installed version cannot be known by the static catalog. A version or version set the generator cannot parse fails site generation rather than producing a partial answer. Browser clients on other origins can fetch these files because GitHub Pages serves static assets with Access-Control-Allow-Origin: *.