{ "$schema": "http://json-schema.org/draft-04/schema#", "definitions": { "point": { "type": "object", "properties": { "line": { "type": "integer" }, "column": { "type": "integer" } }, "required": ["line", "column"] }, "buffer": { "type": "object", "properties": { "name": { "oneOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": ["name"] }, "location": { "type": "object", "properties": { "start": { "$ref": "#/definitions/point" }, "end": { "$ref": "#/definitions/point" }, "buffer": { "$ref": "#/definitions/buffer" } }, "required": ["start", "end", "buffer"] } }, "oneOf": [ { "$ref": "#/definitions/location" }, { "type": "null" } ] }