Also prance emits errors:
prance compile discovery.json
Processing "discovery.json"...
-> Resolving external references.
ERROR in "discovery.json" [ValidationError]: ("{'name': 'body', 'in': 'body', 'required': True, 'description': 'Request body contents.', 'schema': {'id': 'CreateMessage', 'type': 'object', 'description': 'Create a new message', 'properties': {'message': {'type': 'object', 'description': 'A single message', 'required': ['content', 'media_type', 'severity'], 'properties': {'content': {'type': 'string', 'description': 'The actual message'}, 'media_type': {'type': 'string', 'description': 'The media type of the message', 'enum': ['text/plain', 'text/markdown']}, 'severity': {'type': 'string', 'description': 'The severity of the message', 'enum': ['info', 'warning', 'error']}}}}}} is not valid under any of the given schemas", 'oneOf', deque(['paths', '/api/v1/messages', 'post', 'parameters', 0]), None, [<ValidationError: "{'name': 'body', 'in': 'body', 'required': True, 'description': 'Request body contents.', 'schema': {'id': 'CreateMessage', 'type': 'object', 'description': 'Create a new message', 'properties': {'message': {'type': 'object', 'description': 'A single message', 'required': ['content', 'media_type', 'severity'], 'properties': {'content': {'type': 'string', 'description': 'The actual message'}, 'media_type': {'type': 'string', 'description': 'The media type of the message', 'enum': ['text/plain', 'text/markdown']}, 'severity': {'type': 'string', 'description': 'The severity of the message', 'enum': ['info', 'warning', 'error']}}}}}} is not valid under any of the given schemas">, <ValidationError: "'$ref' is a required property">, <ValidationError: "Additional properties are not allowed ('description', 'in', 'name', 'required', 'schema' were unexpected)">], [{'$ref': '#/definitions/parameter'}, {'$ref': '#/definitions/jsonReference'}], {'name': 'body', 'in': 'body', 'required': True, 'description': 'Request body contents.', 'schema': {'id': 'CreateMessage', 'type': 'object', 'description': 'Create a new message', 'properties': {'message': {'type': 'object', 'description': 'A single message', 'required': ['content', 'media_type', 'severity'], 'properties': {'content': {'type': 'string', 'description': 'The actual message'}, 'media_type': {'type': 'string', 'description': 'The media type of the message', 'enum': ['text/plain', 'text/markdown']}, 'severity': {'type': 'string', 'description': 'The severity of the message', 'enum': ['info', 'warning', 'error']}}}}}}, {'oneOf': [{'$ref': '#/definitions/parameter'}, {'$ref': '#/definitions/jsonReference'}]}, deque(['properties', 'paths', 'patternProperties', '^/', 'properties', 'post', 'properties', 'parameters', 'items', 'oneOf']), None)