Examples

Table of Contents


OpenAI: Schema Fails → Coercion Fixes → Schema Passes

Starting Schema

A schema missing additionalProperties and required:

{
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "age": { "type": "integer" }
  }
}

Step 1: Validate

$ jsonschemaprofiles validate schema --profile OPENAI_202602 --in schema.json
Schema is NOT VALID
  [ERROR] META_SCHEMA_VALIDATION: missing properties 'required', 'additionalProperties'
  [ERROR] OPENAI_MISSING_ADDITIONAL_PROPERTIES: Object schema must have additionalProperties: false
  [ERROR] OPENAI_MISSING_REQUIRED: Object with properties must have required listing all property keys

Step 2: Coerce

$ jsonschemaprofiles coerce schema --profile OPENAI_202602 --in schema.json --out fixed.json
Schema is VALID
  [INFO] COERCE_ADD_ADDITIONAL_PROPERTIES_FALSE: Added additionalProperties: false
  [INFO] COERCE_ADD_REQUIRED: Added required with all property keys

Step 3: Validate the Fixed Schema

$ jsonschemaprofiles validate schema --profile OPENAI_202602 --in fixed.json
Schema is VALID
  No findings.

The coerced fixed.json:

{
  "additionalProperties": false,
  "properties": {
    "age": { "type": "integer" },
    "name": { "type": "string" }
  },
  "required": ["age", "name"],
  "type": "object"
}

Gemini 2.0: Adding propertyOrdering

Starting Schema

{
  "type": "object",
  "properties": {
    "title": { "type": "string" },
    "rating": { "type": "number", "minimum": 0, "maximum": 5 }
  },
  "required": ["title", "rating"]
}

Validate Against Gemini 2.0

$ jsonschemaprofiles validate schema --profile GEMINI_202503 --in schema.json
Schema is NOT VALID
  [ERROR] GEMINI_2_0_MISSING_PROPERTY_ORDERING: Object schema must include propertyOrdering for Gemini 2.0 compatibility

Coerce for Gemini 2.0

$ jsonschemaprofiles coerce schema --profile GEMINI_202503 --in schema.json
{
  "properties": {
    "rating": { "maximum": 5, "minimum": 0, "type": "number" },
    "title": { "type": "string" }
  },
  "propertyOrdering": ["rating", "title"],
  "required": ["title", "rating"],
  "type": "object"
}
Schema is VALID
  [WARNING] COERCE_ADD_PROPERTY_ORDERING: Added propertyOrdering derived from properties keys (ordering may not match source)

Minimal Profile: Cross-Provider Compatibility

Starting Schema

{
  "type": "object",
  "properties": {
    "message": { "type": "string" }
  }
}

Validate Against Minimal

$ jsonschemaprofiles validate schema --profile MINIMAL_202602 --in schema.json
Schema is NOT VALID
  [ERROR] MINIMAL_MISSING_ADDITIONAL_PROPERTIES: Object schema must have additionalProperties: false
  [ERROR] MINIMAL_MISSING_REQUIRED: Object with properties must have required listing all property keys

Coerce for Maximum Compatibility

$ jsonschemaprofiles coerce schema --profile MINIMAL_202602 --in schema.json --out portable.json