Conversation
- Implement 'operation' concept-level selector in overlay-merge:
- OpenAPI (openapi-v2/v3/v3.1+): resolves via paths.{path}.{method}.operationId
- MCP (Specification ID definitionType): resolves via tools[].name
- A2A Agent Card: resolves via skills[].id
- Auto-detection (no definitionType): tries OpenAPI → MCP → A2A in order
- Throws OverlayMergeError for named definitionTypes without operation support
(e.g. edmx, csdl-json, asyncapi-v2, raml-v1)
- Add 6 new unit tests and 2 integration tests for operation selector
- Rename dispute-agent-mcp.overlay.json → dispute-agent-a2a.overlay.json
- Update SelectorByOperation schema description: clearly defines all three
operation mappings and removes resolved A2A TODO
- Update OrdOverlay.intro.md: remove A2A TODO block, document A2A skills[].id
- Add real paths/operationIds/schemas to astronomy-v1.oas3.json for tests
- Add legacy-dispute-lookup skill to DisputeResolutionAgentcard.json
- Rewrite examples/definitions/ord-document-overlay.json to current schema format
- Copy OrdOverlay.schema.json to static/spec-extension/models/ for canonical $id URL;
gitignore /static/spec-extension/ (URL only works after deployment)
- Clean stale ResourceDefinitionOverlay references from clean.mjs
- Add inline TODOs: YAML CLI input, deepMerge type mismatch, definitionType
validators, entityType/propertyType selectors, OData operation mapping
- Fix JSON formatting in business-partner-odata.overlay.json
- Add structured sections: Distribution, Target Resolution, Selectors, Patch Actions, Validation, Overlay Document Metadata, Open TODOs - Replace repeated prose with tables and anchor links to schema definitions - Add inline example overlay JSON (enriching an undocumented API operation) - Split Distribution into two sub-sections with brief JSON examples each - Remove redundant Referencing from ORD Documents section (now inline) - Consolidate all TODOs at end under Open TODOs - Fix all broken Docusaurus anchor links
Closed
|
Fannon
commented
Apr 28, 2026
Fannon
commented
Apr 28, 2026
Fannon
commented
Apr 28, 2026
…Remove model extensions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The ORD Overlay is an optional ORD model extension that allows patching various referenced resource definition files (e.g. OpenAPI, AsyncAPI, OData CSDL, MCP/A2A Agent Cards) without modifying the original source files. Fore the future, it's planned to also support patching ORD level information as well, hence the opinionated name.
What to Review
This PR contains a lot of file changes, but some of them are just generated files (ignore in review) and quite a few are for the merge-overlay script that we should move to a separate repository / NPM project later anyway.
For easier reviewing, concentrate on:
Added
ord:overlay:v1)openResourceDiscoveryV1.overlays) or attached directly to an API/Event resource as aresourceDefinitionsentry.ordId,operation,entityType,propertyType) or a genericjsonPathfallback, with actionsmerge,update,append, andremove.targetobject narrows a patch to a specific definition file or format (e.g.definitionType: openapi-v3).describedSystemType,describedSystemVersion,describedSystemInstance,visibility) scope the overlay to a particular system context.