json_schema: {
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "RevisionDocument (v0.0.2)",
      "type": "object",
      "required": [
          "id",
          "timestamp",
          "page",
          "contributor",
          "minor",
          "comment",
          "bytes",
          "sha1",
          "parent_id",
          "model",
          "format"
      ],
      "properties": {
          "id": {
              "description": "The revision identifier",
              "type": "number"
          },
          "timestamp": {
              "description": "The time that the revision was saved in YYYY-MM-DDTHH:MM:SSZ format.",
              "type": "string"
          },
          "page": {
              "description": "Metadata about the page the revision was saved to",
              "type": "object",
              "required": [
                  "id",
                  "namespace",
                  "title",
                  "redirect_title",
                  "restrictions"
              ],
              "properties": {
                  "id": {
                      "description": "The page's identifier",
                      "type": "number"
                  },
                  "namespace": {
                      "description": "The page's current namespace identifier",
                      "type": "number"
                  },
                  "title": {
                      "description": "The page's full name (including namespace prefix)",
                      "type": "string"
                  },
                  "redirect_title": {
                      "description": "Redirected to page name.  Otherwise, null.",
                      "type": [
                          "string",
                          "null"
                      ]
                  },
                  "restrictions": {
                      "description": "The protection restrictions applied to this page.",
                      "type": "array",
                      "items": {
                          "type": "string"
                      }
                  }
              }
          },
          "contributor": {
              "description": "Metadata about the user who saved the edit.  Might be null if the contributor information was deleted.",
              "type": [
                  "object",
                  "null"
              ],
              "required": [
                  "id",
                  "user_text"
              ],
              "properties": {
                  "id": {
                      "description": "The users's identifier if registered",
                      "type": [
                          "number",
                          "null"
                      ]
                  },
                  "user_text": {
                      "description": "The user's user_name if registered or the IP address if anon.",
                      "type": [
                          "string",
                          "null"
                      ]
                  }
              }
          },
          "minor": {
              "description": "Is this a minor edit?",
              "type": "boolean"
          },
          "comment": {
              "description": "The revision summary.  Might be null if the summary was deleted.",
              "type": [
                  "string",
                  "null"
              ]
          },
          "text": {
              "description": "The content of the revision.  Might be null if the revision content was deleted.",
              "type": [
                  "string",
                  "null"
              ]
          },
          "diff": {
              "description": "A collection of operations that represent the changes made in this revision.",
              "type": "array",
              "items": {
                  "description": "Operation",
                  "type": "object",
                  "properties": {
                      "name": {
                          "description": "The name of the operation",
                          "enum": [
                              "insert",
                              "delete",
                              "replace",
                              "equal"
                          ]
                      },
                      "a1": {
                          "description": "A reference to a starting token index from the last revision",
                          "type": "number"
                      },
                      "a2": {
                          "description": "A reference to a ending token index from the last revision",
                          "type": "number"
                      },
                      "b1": {
                          "description": "A reference to a starting token index from the current revision",
                          "type": "number"
                      },
                      "b2": {
                          "description": "A reference to a ending token index from the current revision",
                          "type": "number"
                      },
                      "tokens": {
                          "description": "The affected tokens if the operation affects tokens."
                      }
                  }
              }
          },
          "bytes": {
              "description": "The size of revision content in bytes",
              "type": [
                  "number",
                  "null"
              ]
          },
          "sha1": {
              "description": "A sha1 hash of the revision content",
              "type": "string"
          },
          "parent_id": {
              "description": "The revision ID of the preceding revision",
              "type": [
                  "number",
                  "null"
              ]
          },
          "model": {
              "description": "???",
              "type": "string"
          },
          "format": {
              "description": "???",
              "type": "string"
          }
      }
  }