JSON Schema describe la forma de los datos JSON y valida documentos automáticamente.
type limita el tipo. properties define campos. required lista claves obligatorias. items describe elementos de array.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["name", "age"],
"properties": {
"name": {"type": "string"},
"age": {"type": "integer", "minimum": 0}
}
}
enum permite un conjunto fijo. const exige un único valor.
{"role": {"enum": ["admin", "editor", "viewer"]}}
$ref apunta a otra definición para mantener documentos complejos.
{"$defs":{"id":{"type":"integer"},"type":"object","properties":{"id":{"$ref":"#/$defs/id"}}}