diff --git a/swagger_spec_validator/validator20.py b/swagger_spec_validator/validator20.py
index fe17ded..002eb44 100644
--- a/swagger_spec_validator/validator20.py
+++ b/swagger_spec_validator/validator20.py
@@ -268,6 +268,15 @@ def validate_defaults_in_definition(definition_spec, deref):
         validate_property_default(property_spec, deref)
 
 
+def validate_arrays_in_definition(definition_spec, def_name=None):
+    if definition_spec.get('type') == 'array' and 'items' not in definition_spec:
+        raise SwaggerValidationError(
+            'Definition of type array must define `items` property{}.'.format(
+                '' if not def_name else ' (definition {})'.format(def_name),
+            ),
+        )
+
+
 def validate_definition(definition, deref, def_name=None):
     definition = deref(definition)
 
@@ -286,6 +295,7 @@ def validate_definition(definition, deref, def_name=None):
             )
 
         validate_defaults_in_definition(definition, deref)
+        validate_arrays_in_definition(definition, def_name=def_name)
 
     if 'discriminator' in definition:
         required_props, not_required_props = get_collapsed_properties_type_mappings(definition, deref)

Spec validation will not fail if items is not present and type is array
The following specs are not valid according to [Swagger 2.0 Specs](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#parameter-object), editor.swagger.io and according to `swagger-tools` npm package.
```yaml
swagger: '2.0'
info:
  title: Example
produces:
- application/json
paths:
  /test:
    get:
      responses:
        '200':
          description: HTTP200
          schema:
            type: array
```

Error reported by editor.swagger.io
![https://image.ibb.co/ghkioJ/5186391944200192.png](https://image.ibb.co/ghkioJ/5186391944200192.png)

Error reported by npm
```
API Errors:

  #/paths/~1test/get/responses/200/schema: Missing required property: items

1 error and 0 warnings
```
diff --git a/tests/validator20/validate_definitions_test.py b/tests/validator20/validate_definitions_test.py
index 0b61dc0..6c2b6aa 100644
--- a/tests/validator20/validate_definitions_test.py
+++ b/tests/validator20/validate_definitions_test.py
@@ -95,3 +95,30 @@ def test_api_check_default_fails(property_spec, validator, instance):
     validation_error = excinfo.value.args[1]
     assert validation_error.instance == instance
     assert validation_error.validator == validator
+
+
+def test_type_array_with_items_succeed_validation():
+    definitions = {
+        'definition_1': {
+            'type': 'array',
+            'items': {
+                'type': 'string',
+            },
+        },
+    }
+
+    # Success if no exception are raised
+    validate_definitions(definitions, lambda x: x)
+
+
+def test_type_array_without_items_succeed_fails():
+    definitions = {
+        'definition_1': {
+            'type': 'array',
+        },
+    }
+
+    with pytest.raises(SwaggerValidationError) as excinfo:
+        validate_definitions(definitions, lambda x: x)
+
+    assert str(excinfo.value) == 'Definition of type array must define `items` property (definition definition_1).'
diff --git a/tests/validator20/validate_spec_test.py b/tests/validator20/validate_spec_test.py
index 5bc9e53..981255c 100644
--- a/tests/validator20/validate_spec_test.py
+++ b/tests/validator20/validate_spec_test.py
@@ -341,3 +341,37 @@ def test_failure_because_references_in_operation_responses():
         validate_spec(invalid_spec)
     assert 'GET /endpoint does not have a valid responses section. ' \
            'That section cannot be just a reference to another object.' in str(excinfo.value)
+
+
+def test_type_array_with_items_succeed_validation(minimal_swagger_dict):
+    minimal_swagger_dict['definitions'] = {
+        'definition_1': {
+            'type': 'array',
+            'items': {
+                'type': 'string',
+            },
+        },
+    }
+
+    # Success if no exception are raised
+    validate_spec(minimal_swagger_dict)
+
+
+@pytest.mark.parametrize(
+    'swagger_dict_override',
+    (
+        {
+            'definitions': {
+                'definition_1': {
+                    'type': 'array',
+                },
+            },
+        },
+    )
+)
+def test_type_array_without_items_succeed_fails(minimal_swagger_dict, swagger_dict_override):
+    minimal_swagger_dict.update(swagger_dict_override)
+    with pytest.raises(SwaggerValidationError) as excinfo:
+        validate_spec(minimal_swagger_dict)
+
+    assert str(excinfo.value) == 'Definition of type array must define `items` property (definition definition_1).'

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest
apt-get update apt-get install -y gcc
3.6
requirements-dev.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
certifi==2021.5.30
httpretty==1.1.4
importlib-metadata==4.8.3
iniconfig==1.1.1
jsonschema==3.2.0
mock==5.2.0
packaging==21.3
pluggy==1.0.0
py==1.11.0
pyparsing==3.1.4
pyrsistent==0.18.0
pytest==7.0.1
PyYAML==6.0.1
six==1.17.0
-e git+https://github.com/Yelp/swagger_spec_validator.git@40e1cc926775777ff2d56e271fd61697c6235579#egg=swagger_spec_validator
tomli==1.2.3
typing_extensions==4.1.1
zipp==3.6.0

name: swagger_spec_validator
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - httpretty==1.1.4
      - importlib-metadata==4.8.3
      - iniconfig==1.1.1
      - jsonschema==3.2.0
      - mock==5.2.0
      - packaging==21.3
      - pluggy==1.0.0
      - py==1.11.0
      - pyparsing==3.1.4
      - pyrsistent==0.18.0
      - pytest==7.0.1
      - pyyaml==6.0.1
      - six==1.17.0
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - zipp==3.6.0
prefix: /opt/conda/envs/swagger_spec_validator

tests/validator20/validate_definitions_test.py::test_type_array_without_items_succeed_fails
tests/validator20/validate_definitions_test.py::test_api_check_default_succeed[property_spec0] tests/validator20/validate_definitions_test.py::test_api_check_default_succeed[property_spec1] tests/validator20/validate_definitions_test.py::test_api_check_default_succeed[property_spec2] tests/validator20/validate_definitions_test.py::test_api_check_default_succeed[property_spec3] tests/validator20/validate_definitions_test.py::test_api_check_default_succeed[property_spec4] tests/validator20/validate_definitions_test.py::test_api_check_default_succeed[property_spec5] tests/validator20/validate_definitions_test.py::test_api_check_default_succeed[property_spec6] tests/validator20/validate_definitions_test.py::test_api_check_default_succeed[property_spec7] tests/validator20/validate_definitions_test.py::test_api_check_default_succeed[property_spec8] tests/validator20/validate_definitions_test.py::test_api_check_default_succeed[property_spec9] tests/validator20/validate_definitions_test.py::test_api_check_default_succeed[property_spec10] tests/validator20/validate_definitions_test.py::test_api_check_default_fails[property_spec0-type-wrong_type] tests/validator20/validate_definitions_test.py::test_api_check_default_fails[property_spec1-type-wrong_type] tests/validator20/validate_definitions_test.py::test_api_check_default_fails[property_spec2-type-wrong_type] tests/validator20/validate_definitions_test.py::test_api_check_default_fails[property_spec3-type-wrong_type] tests/validator20/validate_definitions_test.py::test_api_check_default_fails[property_spec4-type-wrong_type] tests/validator20/validate_definitions_test.py::test_api_check_default_fails[property_spec5-type-wrong_type] tests/validator20/validate_definitions_test.py::test_api_check_default_fails[property_spec6-type--1] tests/validator20/validate_definitions_test.py::test_api_check_default_fails[property_spec7-minLength-short_string] tests/validator20/validate_definitions_test.py::test_api_check_default_fails[property_spec8-type-not_a_number_or_boolean] tests/validator20/validate_spec_test.py::test_success tests/validator20/validate_spec_test.py::test_definitons_not_present_success tests/validator20/validate_spec_test.py::test_empty_definitions_success tests/validator20/validate_spec_test.py::test_api_parameters_as_refs tests/validator20/validate_spec_test.py::test_fails_on_invalid_external_ref_in_dict tests/validator20/validate_spec_test.py::test_fails_on_invalid_external_ref_in_list tests/validator20/validate_spec_test.py::test_recursive_ref tests/validator20/validate_spec_test.py::test_recursive_ref_failure tests/validator20/validate_spec_test.py::test_complicated_refs tests/validator20/validate_spec_test.py::test_specs_with_discriminator tests/validator20/validate_spec_test.py::test_specs_with_discriminator_fail_because_not_required tests/validator20/validate_spec_test.py::test_specs_with_discriminator_fail_because_not_string tests/validator20/validate_spec_test.py::test_specs_with_discriminator_fail_because_not_in_properties tests/validator20/validate_spec_test.py::test_specs_with_discriminator_in_allOf tests/validator20/validate_spec_test.py::test_specs_with_discriminator_in_allOf_fail_because_not_required tests/validator20/validate_spec_test.py::test_specs_with_discriminator_in_allOf_fail_because_not_string tests/validator20/validate_spec_test.py::test_specs_with_discriminator_in_allOf_fail_because_not_in_properties tests/validator20/validate_spec_test.py::test_read_yaml_specs tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec0] tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec1] tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec2] tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec3] tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec4] tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec5] tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec6] tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec7] tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec8] tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec9] tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec10] tests/validator20/validate_spec_test.py::test_valid_specs_with_check_of_default_types[property_spec11] tests/validator20/validate_spec_test.py::test_failure_due_to_wrong_default_type[property_spec0-type-wrong_type] tests/validator20/validate_spec_test.py::test_failure_due_to_wrong_default_type[property_spec1-type-wrong_type] tests/validator20/validate_spec_test.py::test_failure_due_to_wrong_default_type[property_spec2-type-wrong_type] tests/validator20/validate_spec_test.py::test_failure_due_to_wrong_default_type[property_spec3-type-wrong_type] tests/validator20/validate_spec_test.py::test_failure_due_to_wrong_default_type[property_spec4-type-wrong_type] tests/validator20/validate_spec_test.py::test_failure_due_to_wrong_default_type[property_spec5-type-wrong_type] tests/validator20/validate_spec_test.py::test_failure_due_to_wrong_default_type[property_spec6-type--1] tests/validator20/validate_spec_test.py::test_failure_due_to_wrong_default_type[property_spec7-minLength-short_string] tests/validator20/validate_spec_test.py::test_failure_due_to_wrong_default_type[property_spec8-type-not_a_number_or_boolean] tests/validator20/validate_spec_test.py::test_failure_due_to_wrong_default_type[property_spec9-enum-not_valid] tests/validator20/validate_spec_test.py::test_ref_without_str_argument tests/validator20/validate_spec_test.py::test_failure_because_references_in_operation_responses tests/validator20/validate_spec_test.py::test_type_array_with_items_succeed_validation tests/validator20/validate_spec_test.py::test_type_array_without_items_succeed_fails[swagger_dict_override0]
tests/validator20/validate_definitions_test.py::test_type_array_with_items_succeed_validation
swagger_spec_validator/validator20.py
swagger_spec_validator/validator20.py