Skip to content

Add @interfaceObject for interface default implementations - #233

Open
michaelstaib wants to merge 7 commits into
mainfrom
mst/interfaceObject-2
Open

michaelstaib wants to merge 7 commits into
mainfrom
mst/interfaceObject-2

Conversation

@michaelstaib

@michaelstaib michaelstaib commented Jul 8, 2026 •

Copy link
Copy Markdown
Member

Supersedes #232

@netlify

netlify Bot commented Jul 8, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for composite-schemas ready!

Name Link
🔨 Latest commit 9269627
🔍 Latest deploy log https://app.netlify.com/projects/composite-schemas/deploys/6aa2c945fe648d00085443c5
😎 Deploy Preview https://deploy-preview-233--composite-schemas.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Comment thread spec/Section 2 -- Source Schema.md Outdated
Comment thread spec/Section 2 -- Source Schema.md
Copilot AI lite review requested due to automatic review settings September 10, 2026 13:06

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The new ProjectedFieldNames(interface) definition is inconsistent with the PR’s other “non-key field” semantics and can cause contradictory projection vs validation behavior.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR extends the composition specification to support interface default implementations via @interfaceObject stand-ins and explicit replacement via @implement, including the corresponding merge, validation, and satisfiability rules.

Changes:

  • Adds the @interfaceObject directive to the Source Schema spec and documents how stand-ins contribute interface fields.
  • Introduces/updates Composition rules to validate stand-ins (e.g., key presence/matching) and to project stand-in field implementations onto implementing types with @implement/@shareable semantics.
  • Updates spelling dictionary to recognize new spec terminology used by the added algorithms.
File summaries
File Description
spec/Section 4 -- Composition.md Adds new composition/validation/satisfiability algorithms for @interfaceObject and @implement, including projected field ownership and planning rules.
spec/Section 2 -- Source Schema.md Defines @interfaceObject and documents stand-in behavior and interactions with @shareable/@override.
cspell.yml Adds new spec terms used by the added algorithms.
Review details
  • Files reviewed: 2/3 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread spec/Section 4 -- Composition.md Outdated
@michaelstaib michaelstaib changed the title Add @interfaceObject and @implement for interface default implementations Add @interfaceObject for interface default implementations Sep 10, 2026

This branch has not been deployed

No deployments
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.

3 participants