items, and $defs / $ref are supported by all four.
String constraints
| Feature | dottxt | OpenAI | Anthropic | Gemini |
|---|---|---|---|---|
minLength / maxLength | ||||
pattern (regex) | ||||
format |
Number constraints
| Feature | dottxt | OpenAI | Anthropic | Gemini |
|---|---|---|---|---|
minimum / maximum | ||||
exclusiveMinimum / exclusiveMaximum | ||||
multipleOf |
Array constraints
| Feature | dottxt | OpenAI | Anthropic | Gemini |
|---|---|---|---|---|
prefixItems (tuples) | ||||
minItems / maxItems | ||||
uniqueItems |
Multiple choices
| Feature | dottxt | OpenAI | Anthropic | Gemini |
|---|---|---|---|---|
enum |
Object constraints
| Feature | dottxt | OpenAI | Anthropic | Gemini |
|---|---|---|---|---|
| Optional fields | ||||
additionalProperties (as schema) | ||||
propertyNames | ||||
patternProperties | ||||
| Arbitrary JSON | ||||
minProperties / maxProperties |
Composition
| Feature | dottxt | OpenAI | Anthropic | Gemini |
|---|---|---|---|---|
anyOf | ||||
allOf | ||||
oneOf | ||||
not |
Conditionals
| Feature | dottxt | OpenAI | Anthropic | Gemini |
|---|---|---|---|---|
if / then / else | ||||
dependentRequired | ||||
dependentSchemas |
Schema reuse and recursion
| Feature | dottxt | OpenAI | Anthropic | Gemini |
|---|---|---|---|---|
| Recursive schemas |
Schema limits
| Limit | dottxt | OpenAI | Anthropic | Gemini |
|---|---|---|---|---|
| Nesting depth | None | 10 levels | None documented | None documented |
| Total properties | None | 5000 | None documented | None documented |
| Enum values | None | 1000 | None documented | None documented |
| Optional parameters | None | N/A | 24 per request | None documented |
| Union type parameters | None | N/A | 16 per request | None documented |
Handling of unsupported features
| Provider | Behavior |
|---|---|
| dottxt | Rejects the schema with an error specifying the unsupported construct |
| OpenAI | With strict: true, unsupported schemas return an API error |
| Anthropic | SDK strips unsupported constraints, adds them as text in field descriptions, validates response client-side |
| Gemini | Silently ignores unsupported properties |
Sources
- OpenAI documentation
- Anthropic documentation
- Gemini documentation
- Last verified: February 26, 2026