{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "contacts": { "type": "object", "additionalProperties": { "$ref": "#/definitions/Contact" } } }, "required": [ "contacts" ], "definitions": { "Contact": { "type": "object", "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "birthday": { "type": "string", "format": "date-time" }, "title": { "enum": [ "Mr.", "Mrs.", "Ms.", "Prof." ], "type": "string" }, "emails": { "type": "array", "items": { "type": "string" } }, "phones": { "type": "array", "items": { "$ref": "#/definitions/PhoneNumber" } }, "highScore": { "type": "integer" } }, "required": [ "emails", "firstName", "highScore", "phones" ] }, "PhoneNumber": { "type": "object", "properties": { "number": { "type": "string" }, "label": { "description": "An optional label (e.g. \"mobile\")", "type": "string" } }, "required": [ "number" ] } } }