Skip to content

[plan] Address schema field dependency and relationship gaps #7575

@github-actions

Description

@github-actions

Overview

This tracking issue addresses the 7 critical relationship gaps identified in the graph-based field dependency analysis. These are schema-documentation gaps where the schema permits invalid configurations that the compiler correctly rejects.

Source: Discussion #7569

Problem Statement

The JSON schema currently describes field relationships only in prose within description fields, and doesn't leverage JSON Schema's built-in relationship features (oneOf, if/then, dependencies, etc.). This creates several issues:

  • Schema validation passes for mutually exclusive field combinations
  • Engine-specific feature compatibility is undocumented
  • Conditional requirements aren't enforced at schema level
  • Users discover validation errors only at compile time

Planned Tasks

This work is broken into 5 focused sub-issues:

  1. Add mutual exclusivity constraints - Implement oneOf constraints for field pairs that cannot coexist
  2. Document engine-specific features - Add compatibility metadata to schema for engine-locked features
  3. Add conditional validation - Implement if/then constraints for conditional requirements
  4. Add array constraints - Add minItems where fields require at least one value
  5. Refactor to use dependencies keyword - Migrate relationship prose to JSON Schema standard features

Success Criteria

  • Schema validation catches mutually exclusive field combinations
  • Engine compatibility is documented in schema metadata
  • Conditional requirements are schema-enforced
  • All array fields have appropriate minItems constraints
  • Field relationships use JSON Schema standard keywords

References

AI generated by Plan Command for discussion #7569

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions