Convierta JSON a JSON Schema draft 4 compatible con Swagger 2.0

Me dieron algunos archivos JSON generados por una API REST con muchas propiedades.

He creado una definición de Swagger 2.0 para esta API y necesito darle el esquema correspondiente para la respuesta.

El principal problema: este archivo JSON tiene muchas propiedades. Me llevaría mucho tiempo y cometería muchos errores si escribo el esquema manualmente. Y no es la única API que necesito describir.

Sé que hay algunas herramientas para convertir JSON a esquemas JSON pero, si no me equivoco, Swagger solo tiene $ refs para otras definiciones de objetos, por lo tanto, solo tiene un nivel, mientras que las herramientas que he encontrado solo producen esquemas estructurados en árbol. Mi pregunta: ¿hay alguna herramienta para convertir un JSON (o JSON Schema) en uno compatible con Swagger 2.0?

Nota: Estoy trabajando en YAML pero no sería un problema, ¿verdad?

Por ejemplo, lo que necesito:

  List of Movements:
    type: "array"
    items:
      $ref: "#/definitions/Movement"
  Movement:
    properties:
      dateKey:
        type: "string"
      movement:
        $ref: "#/definitions/Stock"
    additionalProperties: false
  Stock:
    properties:
      stkUnitQty:
        type: "string"
      stkDateTime:
        type: "string"
      stkUnitType:
        type: "string"
      stkOpKey:
        type: "string"
    additionalProperties: false

Para mi documento JSON:

[
  {
    "dateKey": "20161110",
    "stkLvls": [
      {
        "stkOpKey": "0",
        "stkUnitType": "U",
        "stkDateTime": "20161110T235010.240+0100",
        "stkUnitQty": 30
      }
    ]
  },
  {
    "dateKey": "20161111",
    "stkLvls": [
      {
        "stkOpKey": "0",
        "stkUnitType": "U",
        "stkDateTime": "20161111T231245.087+0100",
        "stkUnitQty": 21
      }
    ]
  }
  ]

Pero quehttp://jsonschema.net/#/ me da

---
"$schema": http://json-schema.org/draft-04/schema#
type: array
items:
  type: object
  properties:
    dateKey:
      type: string
    stkLvls:
      type: array
      items:
        type: object
        properties:
          stkOpKey:
            type: string
          stkUnitType:
            type: string
          stkDateTime:
            type: string
          stkUnitQty:
            type: integer
        required:
        - stkOpKey
        - stkUnitType
        - stkDateTime
        - stkUnitQty
  required:
  - dateKey
  - stkLvls

Soy nuevo en eso, pero curioso, no dudes en explicarlo profundamente.

Gracias de antemano por su ayuda !

Respuestas a la pregunta(3)

Su respuesta a la pregunta