# Abstract Models

Abstract Models in MTGJSON describe any JSON object or nested JSON object that provides a non-flat response. As such, they will only have two or more levels of nested keys. It is worth nothing that most, but not all, Abstract Models are related directly to the structures of specific files, like AllPrices or EnumValues.

For example, any Abstract Model would look similar to this:

"<Some Property Key>": {
  "<A Nested Property Key": {
    "<A Second Nested Key>": "<String, Boolean, Array, Enum Array>"
  },
  "<Some Other Nested Property Key>": {
    "<A Second Nested Key>": {
      "<A Third Nested Key>": "<String, Boolean, Array, Enum Array>"
    }
  },
  "<A Third Property Key": "<String, Boolean, Array, Enum Array>"
  ...
}

Most data output by MTGJSON are not Abstract Models but are less complex structures. Because of this, we document those types of models as Data Models.