-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Issue #99: Enforce RFC 8927 semantics for {} schema and remove AJV compatibility
Problem
Current codebase contains legacy AJV/JSON Schema compatibility where {} could mean "accept anything".
This contradicts RFC 8927: {} always means an object with no properties allowed
(properties = {}, optionalProperties = {}, additionalProperties = false).
This dual behavior causes complexity and test contradictions.
Goals
- Rip out all AJV-style "compatibility mode" handling (
fromRef,EmptySchema fallback). - Make
{}always RFC 8927 strict (PropertiesSchemawith no properties, no additionalProperties). - Add an
INFOlog warning whenever{}is compiled to help developers spot semantic differences from AJV/JSON Schema. - Rewrite AJV-derived tests to expect failures or exceptions under RFC mode.
- Update README.md and AGENTS.md to document the difference.
Implementation Notes
- Follow Markdown-Driven-Development: update documentation before code
- Add INFO-level logging when {} schema is compiled
- Ensure all tests validate strict RFC 8927 behavior
- Update user-facing documentation to explain the semantic difference
EOF < /dev/null
Metadata
Metadata
Assignees
Labels
No labels