Analyzer reference
Supported JSON Schema subset
Schemvia compares the values accepted by two schemas. It supports a deliberately small subset so that every verdict can be explained and, for breaking changes, backed by a concrete counterexample.
Return to analyzer01 / Keywords
Supported constructs
These keywords may appear at the root or inside a property schema. JSON Schema keywords not listed here are reported as unsupported.
type- null, boolean, object, array, number, integer, or string. A non-empty type array is also supported.
properties- Defines named nested object properties.
required- Marks property names as required. Names must be unique.
enum- Restricts a value to a non-empty list of JSON values.
const- Restricts a value to one JSON value.
minimum / maximum- Inclusive numeric bounds.
exclusiveMinimum / exclusiveMaximum- Exclusive numeric bounds.
minLength / maxLength- Inclusive string-length bounds, measured in Unicode characters.
02 / Semantics
What the result means
The proposed schema must accept every value accepted by the existing schema.
Object properties are optional unless they appear in required. Unknown object properties are not constrained because additionalProperties is outside this subset. An integer is also a valid number, matching JSON Schema semantics.
A compatible result means the analyzer found no breaking change within the supported model. An incompatible result includes the affected path and may include a value that was valid before and rejected after.
03 / Boundaries
Input limits
Schemas are customer data and are bounded before analysis. These defaults protect response time and keep analysis deterministic.
- Schema depth
- 32 levels
- Properties
- 256 total properties
- Enum entries
- 100 entries per enum
- JSON values
- 16 levels deep and 2,000 nodes
- String values
- 4,096 characters
A schema that is invalid, uses an unsupported keyword, or exceeds an ingestion limit cannot produce a normal compatibility verdict. If analysis work exceeds its budget, Schemvia returns incomplete rather than calling the change compatible or incompatible.
04 / Example
A supported schema
{
"type": "object",
"properties": {
"name": { "type": "string", "minLength": 1 },
"age": { "type": "integer", "minimum": 0 }
},
"required": ["name"]
}Features such as items, additionalProperties, oneOf, references, and formats are not currently supported. They must be removed or reduced to the subset above before analysis.