Skip to content

remove freestanding catalogs requirement in v1.0#2019

Open
wrenj wants to merge 1 commit into
mainfrom
freestanding
Open

remove freestanding catalogs requirement in v1.0#2019
wrenj wants to merge 1 commit into
mainfrom
freestanding

Conversation

@wrenj

@wrenj wrenj commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

For v1.0 - Catalogs may now use $ref to reference other catalogs. This removes the requirement that catalogs be freestanding / have no external references except to core libraries.

@github-project-automation github-project-automation Bot moved this to Todo in A2UI Jul 16, 2026
@wrenj
wrenj requested review from dmandar and gspencergoog July 16, 2026 17:22
@wrenj
wrenj enabled auto-merge (squash) July 16, 2026 17:23

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the documentation in a2ui_protocol.md and evolution_guide.md to reflect that catalogs can now use $ref to reference other catalogs, removing the requirement for them to be freestanding. The reviewer suggested improving the clarity of the wording in the protocol documentation and noted that the PR description should include the required Pre-Review Checklist as per the repository style guide.

3. **Restricted `$ref` Targets:**
- Local `$ref` targets are restricted to referencing the catalog's top-level components or functions (e.g., `#/components/Text`, `#/functions/required`).
- External `$ref` targets MUST reference the standard types inside `common_types.json` (`https://a2ui.org/specification/v1_0/common_types.json#/$defs/...`), limited to the following allowed schemas:
- External `$ref` targets may reference other catalogs. When referencing `common_types.json` (`https://a2ui.org/specification/v1_0/common_types.json#/$defs/...`), targets are limited to the following allowed schemas:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The current wording is a bit dense and could be misinterpreted. To improve clarity, consider separating the two cases for external $ref targets more explicitly. This will make it easier for readers to understand that referencing other catalogs is a new general capability, while referencing common_types.json is a specific case with its own constraints.

Suggested change
- External `$ref` targets may reference other catalogs. When referencing `common_types.json` (`https://a2ui.org/specification/v1_0/common_types.json#/$defs/...`), targets are limited to the following allowed schemas:
- External `$ref` targets may reference other catalogs. Additionally, when referencing `common_types.json` (`https://a2ui.org/specification/v1_0/common_types.json#/$defs/...`), targets are limited to the following allowed schemas:

- Standard JSON Schema metadata fields (`$schema`, `$id`, `title`, and `description`) are supported in catalogs, preventing validation failures on inline catalogs with strict property checks.
- Identifier naming rules across all catalog entities (component names, function names, and argument keys) must conform to Unicode Standard Annex #31 (UAX #31).
- The `@index` built-in function dynamically retrieves iteration indices during list template rendering. The `@` prefix is reserved for core system context evaluations.
- Catalogs may now use `$ref` to reference other catalogs. This removes the requirement that catalogs be freestanding / have no external references except to core libraries.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The pull request description is currently empty. Per the repository's style guide (lines 18-20), it should include the Pre-Review Checklist from the pull request template. Please update the description accordingly.

References
  1. PR descriptions should include the Pre-Review Checklist from the PR template, with all of the steps completed. (link)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant