diff --git a/starttls_policy_cli/policy.py b/starttls_policy_cli/policy.py
index b4ab17a..8b5aedb 100644
--- a/starttls_policy_cli/policy.py
+++ b/starttls_policy_cli/policy.py
@@ -210,7 +210,6 @@ class PolicyNoAlias(Policy):
     @property
     def policy_alias(self):
         """ This type of policy can't be aliased. Returns None."""
-        pass
 
     @policy_alias.setter
     def policy_alias(self, value):
@@ -238,6 +237,7 @@ class Config(MergableConfig, collections.Mapping):
             yield domain
 
     def keys(self):
+        """ Returns iterable over policies even if this attribute is not set """
         if self.policies is None:
             return set([])
         return self.policies.keys()
diff --git a/starttls_policy_cli/util.py b/starttls_policy_cli/util.py
index 8f7da53..6b703a7 100644
--- a/starttls_policy_cli/util.py
+++ b/starttls_policy_cli/util.py
@@ -103,20 +103,14 @@ TLS_VERSIONS = ('TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3')
 ENFORCE_MODES = ('testing', 'enforce')
 
 POLICY_SCHEMA = {
-        'min-tls-version': {
-            'enforce': partial(enforce_in, TLS_VERSIONS),
-            'default': 'TLSv1.2',
-            },
         'mode': {
             'enforce': partial(enforce_in, ENFORCE_MODES),
             'default': 'testing',
             },
-        # TODO (#50) Validate mxs as FQDNs (using public suffix list)
         'mxs': {
             'enforce': partial(enforce_list, partial(enforce_type, six.string_types)),
             'default': [],
             },
-        # TODO (#50) Validate reporting endpoint as https: or mailto:
         'policy-alias': partial(enforce_type, six.string_types),
 }
 

Config parser schema contains field not present in format spec
[Field Enforcer](https://github.com/EFForg/starttls-policy-cli/blob/687dbbf99b683eebceb524fb93286d5ebfe57204/starttls_policy_cli/util.py#L102-L105) ∉ [Format Spec](https://github.com/EFForg/starttls-everywhere/blob/master/RULES.md)
diff --git a/starttls_policy_cli/tests/policy_test.py b/starttls_policy_cli/tests/policy_test.py
index 81a8fb1..994c7bd 100644
--- a/starttls_policy_cli/tests/policy_test.py
+++ b/starttls_policy_cli/tests/policy_test.py
@@ -16,7 +16,6 @@ test_json = '{\
         "timestamp": "2014-05-26T01:35:33+0000",\
         "policies": {\
             ".valid.example-recipient.com": {\
-                "min-tls-version": "TLSv1.1",\
                     "mode": "enforce",\
                     "mxs": [".valid.example-recipient.com"]\
             }\
@@ -166,8 +165,8 @@ class TestConfig(unittest.TestCase):
         with self.assertRaises(util.ConfigError):
             policy.Config().policies = {'invalid': invalid_policy}
         conf = policy.Config()
-        conf.policies = {'valid': {}}
-        self.assertEqual(conf.get_policy_for('valid').min_tls_version, 'TLSv1.2')
+        conf.policies = {'valid': {'mxs': ['example.com']}}
+        self.assertEqual(conf.get_policy_for('valid').mxs, ['example.com'])
 
     def test_set_aliased_policy(self):
         conf = policy.Config()
@@ -175,7 +174,7 @@ class TestConfig(unittest.TestCase):
         with self.assertRaises(util.ConfigError):
             conf.policies = {'invalid': {'policy-alias': 'invalid'}}
         conf.policies = {'valid': {'policy-alias': 'valid'}}
-        self.assertEqual(conf.get_policy_for('valid').min_tls_version, 'TLSv1.2')
+        self.assertEqual(conf.get_policy_for('valid').mode, 'testing')
 
     def test_iter_policies_aliased(self):
         conf = policy.Config()
@@ -226,23 +225,10 @@ class TestPolicy(unittest.TestCase):
         self.assertFalse('eff.org' in new_conf.mxs)
         self.assertTrue('example.com' in new_conf.mxs)
 
-    def test_tls_version_default(self):
-        p = policy.Policy({})
-        self.assertEqual(p.min_tls_version, 'TLSv1.2')
-
     def test_mode_default(self):
         p = policy.Policy({})
         self.assertEqual(p.mode, 'testing')
 
-    def test_tls_version_valid(self):
-        with self.assertRaises(util.ConfigError):
-            policy.Policy({'min-tls-version': 'SSLv3'})
-        p = policy.Policy({})
-        with self.assertRaises(util.ConfigError):
-            p.min_tls_version = 'SSLv3'
-        p.min_tls_version = 'TLSv1.1'
-        self.assertEqual(p.min_tls_version, 'TLSv1.1')
-
     def test_mode_valid(self):
         p = policy.Policy({})
         with self.assertRaises(util.ConfigError):

pip install -e .[dev]
parse_log_pytest
pytest
pytest
3.6
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
astroid==2.11.7
attrs @ file:///opt/conda/conda-bld/attrs_1642510447205/work
bleach==4.1.0
certifi==2021.5.30
cffi==1.15.1
charset-normalizer==2.0.12
colorama==0.4.5
coverage==6.2
cryptography==40.0.2
DateTime==4.9
dill==0.3.4
docutils==0.18.1
idna==3.10
importlib-metadata @ file:///tmp/build/80754af9/importlib-metadata_1631916693255/work
importlib-resources==5.4.0
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
isort==5.10.1
jeepney==0.7.1
keyring==23.4.1
lazy-object-proxy==1.7.1
mccabe==0.7.0
mock==5.2.0
more-itertools @ file:///tmp/build/80754af9/more-itertools_1637733554872/work
packaging @ file:///tmp/build/80754af9/packaging_1637314298585/work
pkginfo==1.10.0
platformdirs==2.4.0
pluggy @ file:///tmp/build/80754af9/pluggy_1615976315926/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pycparser==2.21
Pygments==2.14.0
pylint==2.13.9
pyparsing @ file:///tmp/build/80754af9/pyparsing_1635766073266/work
pytest==6.2.4
pytest-cov==4.0.0
python-dateutil==2.9.0.post0
pytz==2025.2
readme-renderer==34.0
requests==2.27.1
requests-toolbelt==1.0.0
rfc3986==1.5.0
SecretStorage==3.3.3
six==1.17.0
-e git+https://github.com/EFForg/starttls-policy-cli.git@be1143dcfb2d54fe638a850f63f603aedb068e0c#egg=starttls_policy_cli
toml @ file:///tmp/build/80754af9/toml_1616166611790/work
tomli==1.2.3
tqdm==4.64.1
twine==3.8.0
typed-ast==1.5.5
typing_extensions @ file:///opt/conda/conda-bld/typing_extensions_1647553014482/work
urllib3==1.26.20
webencodings==0.5.1
wrapt==1.16.0
zipp @ file:///tmp/build/80754af9/zipp_1633618647012/work
zope.interface==5.5.2

name: starttls-policy-cli
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
  - attrs=21.4.0=pyhd3eb1b0_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - importlib-metadata=4.8.1=py36h06a4308_0
  - importlib_metadata=4.8.1=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_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
  - more-itertools=8.12.0=pyhd3eb1b0_0
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=21.3=pyhd3eb1b0_0
  - pip=21.2.2=py36h06a4308_0
  - pluggy=0.13.1=py36h06a4308_0
  - py=1.11.0=pyhd3eb1b0_0
  - pyparsing=3.0.4=pyhd3eb1b0_0
  - pytest=6.2.4=py36h06a4308_2
  - 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
  - toml=0.10.2=pyhd3eb1b0_0
  - typing_extensions=4.1.1=pyh06a4308_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.6.0=pyhd3eb1b0_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - astroid==2.11.7
      - bleach==4.1.0
      - cffi==1.15.1
      - charset-normalizer==2.0.12
      - colorama==0.4.5
      - coverage==6.2
      - cryptography==40.0.2
      - datetime==4.9
      - dill==0.3.4
      - docutils==0.18.1
      - idna==3.10
      - importlib-resources==5.4.0
      - isort==5.10.1
      - jeepney==0.7.1
      - keyring==23.4.1
      - lazy-object-proxy==1.7.1
      - mccabe==0.7.0
      - mock==5.2.0
      - pkginfo==1.10.0
      - platformdirs==2.4.0
      - pycparser==2.21
      - pygments==2.14.0
      - pylint==2.13.9
      - pytest-cov==4.0.0
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - readme-renderer==34.0
      - requests==2.27.1
      - requests-toolbelt==1.0.0
      - rfc3986==1.5.0
      - secretstorage==3.3.3
      - six==1.17.0
      - tomli==1.2.3
      - tqdm==4.64.1
      - twine==3.8.0
      - typed-ast==1.5.5
      - urllib3==1.26.20
      - webencodings==0.5.1
      - wrapt==1.16.0
      - zope-interface==5.5.2
prefix: /opt/conda/envs/starttls-policy-cli

starttls_policy_cli/tests/policy_test.py::TestConfig::test_basic_parsing
starttls_policy_cli/tests/policy_test.py::TestConfigEncoder::test_encode_datetime starttls_policy_cli/tests/policy_test.py::TestConfigEncoder::test_encode_empty_dict starttls_policy_cli/tests/policy_test.py::TestConfigEncoder::test_encode_empty_list starttls_policy_cli/tests/policy_test.py::TestConfigEncoder::test_encode_empty_string starttls_policy_cli/tests/policy_test.py::TestConfigEncoder::test_encode_false starttls_policy_cli/tests/policy_test.py::TestConfigEncoder::test_encode_float starttls_policy_cli/tests/policy_test.py::TestConfigEncoder::test_encode_integer starttls_policy_cli/tests/policy_test.py::TestConfigEncoder::test_encode_none starttls_policy_cli/tests/policy_test.py::TestConfigEncoder::test_encode_true starttls_policy_cli/tests/policy_test.py::TestConfig::test_bad_schema starttls_policy_cli/tests/policy_test.py::TestConfig::test_flush starttls_policy_cli/tests/policy_test.py::TestConfig::test_flush_default starttls_policy_cli/tests/policy_test.py::TestConfig::test_iter_policies starttls_policy_cli/tests/policy_test.py::TestConfig::test_iter_policies_aliased starttls_policy_cli/tests/policy_test.py::TestConfig::test_keys_empty_policy starttls_policy_cli/tests/policy_test.py::TestConfig::test_len_method starttls_policy_cli/tests/policy_test.py::TestConfig::test_merge_keeps_old_policies starttls_policy_cli/tests/policy_test.py::TestConfig::test_merge_keeps_old_settings starttls_policy_cli/tests/policy_test.py::TestConfig::test_no_aliasing_in_alias starttls_policy_cli/tests/policy_test.py::TestConfig::test_set_aliased_policy starttls_policy_cli/tests/policy_test.py::TestConfig::test_set_author starttls_policy_cli/tests/policy_test.py::TestConfig::test_set_policies starttls_policy_cli/tests/policy_test.py::TestConfig::test_should_update_invalid_type starttls_policy_cli/tests/policy_test.py::TestConfig::test_should_update_valid_type starttls_policy_cli/tests/policy_test.py::TestConfig::test_timestamp_and_expires_required starttls_policy_cli/tests/policy_test.py::TestConfig::test_update_drops_old_policies starttls_policy_cli/tests/policy_test.py::TestConfig::test_update_drops_old_settings starttls_policy_cli/tests/policy_test.py::TestConfig::test_updateble_checks_types starttls_policy_cli/tests/policy_test.py::TestPolicy::test_alias_valid starttls_policy_cli/tests/policy_test.py::TestPolicy::test_merge_keeps_old_mxs starttls_policy_cli/tests/policy_test.py::TestPolicy::test_mode_default starttls_policy_cli/tests/policy_test.py::TestPolicy::test_mode_valid starttls_policy_cli/tests/policy_test.py::TestPolicy::test_mxs starttls_policy_cli/tests/policy_test.py::TestPolicy::test_no_alias_policy_getter starttls_policy_cli/tests/policy_test.py::TestPolicy::test_no_alias_policy_setter starttls_policy_cli/tests/policy_test.py::TestPolicy::test_update_drops_old_mxs
starttls_policy_cli/policy.py starttls_policy_cli/util.py
starttls_policy_cli/policy.py starttls_policy_cli/util.py