diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1a66036..91cde72 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
   Previously, Spec factories such as `s.str` would inject tags for child validators
   such as `str_matches_regex` into `via`, making it difficult to programmatically
   determine which Spec the input value violated (#78)
+- Mapping spec default conformers will now use the same key insertion order as the
+  original mapping spec predicate. Optional keys will now retain their insertion
+  position, rather than being appended at the end of the conformed map. (#82)
 
 ### Fixed
 - Fixed a bug where `s(None)` is not a valid alias for `s(type(None))` (#61)
diff --git a/src/dataspec/base.py b/src/dataspec/base.py
index 6ff3923..7eb65e9 100644
--- a/src/dataspec/base.py
+++ b/src/dataspec/base.py
@@ -570,16 +570,24 @@ class CollSpec(Spec):
             yield from _enrich_errors(self._spec.validate(e), self.tag, i)
 
 
+T_hashable = TypeVar("T_hashable", bound=Hashable)
+
+
 @attr.s(auto_attribs=True, frozen=True, slots=_USE_SLOTS_FOR_GENERIC)
-class OptionalKey(Generic[T]):
-    key: T
+class OptionalKey(Generic[T_hashable]):
+    key: T_hashable
+
+
+@attr.s(auto_attribs=True, frozen=True, slots=True)
+class _KeySpec:
+    spec: Spec
+    is_optional: bool = False
 
 
 @attr.s(auto_attribs=True, frozen=True, slots=True)
 class DictSpec(Spec):
     tag: Tag
-    _reqkeyspecs: Mapping[Hashable, Spec] = attr.ib(factory=dict)
-    _optkeyspecs: Mapping[Hashable, Spec] = attr.ib(factory=dict)
+    _keyspecs: Mapping[Hashable, _KeySpec] = attr.ib(factory=dict)
     conformer: Optional[Conformer] = None
 
     @classmethod
@@ -589,53 +597,55 @@ class DictSpec(Spec):
         kvspec: Mapping[Hashable, SpecPredicate],
         conformer: Optional[Conformer] = None,
     ) -> Spec:
-        reqkeys = {}
-        optkeys: MutableMapping[Any, Spec] = {}
+        keyspecs = {}
         for k, v in kvspec.items():
             if isinstance(k, OptionalKey):
-                if k.key in reqkeys:
-                    raise KeyError(
-                        f"Optional key '{k.key}' duplicates key already defined in required keys"
-                    )
-                optkeys[k.key] = make_spec(v)
+                if k.key in keyspecs:
+                    raise KeyError(f"Optional key '{k.key}' duplicates existing key")
+                keyspecs[k.key] = _KeySpec(make_spec(v), is_optional=True)
             else:
-                if k in optkeys:
-                    raise KeyError(
-                        f"Required key '{k}' duplicates key already defined in optional keys"
-                    )
-                reqkeys[k] = make_spec(v)
+                if k in keyspecs:
+                    raise KeyError(f"Required key '{k}' duplicates existing key")
+                keyspecs[k] = _KeySpec(make_spec(v))
 
         def conform_mapping(d: Mapping) -> Mapping:
             conformed_d = {}
-            for k, spec in reqkeys.items():
-                conformed_d[k] = spec.conform(d[k])
-
-            for k, spec in optkeys.items():
-                if k in d:
-                    conformed_d[k] = spec.conform(d[k])
+            for k, keyspec in keyspecs.items():
+                if keyspec.is_optional:
+                    if k in d:
+                        conformed_d[k] = keyspec.spec.conform(d[k])
+                else:
+                    conformed_d[k] = keyspec.spec.conform(d[k])
 
             return conformed_d
 
         return cls(
             tag or "map",
-            reqkeyspecs=reqkeys,
-            optkeyspecs=optkeys,
+            keyspecs=keyspecs,
             conformer=compose_conformers(conform_mapping, conformer),
         )
 
     def validate(self, d) -> Iterator[ErrorDetails]:  # pylint: disable=arguments-differ
         try:
-            for k, vspec in self._reqkeyspecs.items():
-                if k in d:
-                    yield from _enrich_errors(vspec.validate(d[k]), self.tag, k)
+            for k, keyspec in self._keyspecs.items():
+                if keyspec.is_optional:
+                    if k in d:
+                        yield from _enrich_errors(
+                            keyspec.spec.validate(d[k]), self.tag, k
+                        )
                 else:
-                    yield ErrorDetails(
-                        message=f"Mapping missing key {k}",
-                        pred=vspec,
-                        value=d,
-                        via=[self.tag],
-                        path=[k],
-                    )
+                    if k in d:
+                        yield from _enrich_errors(
+                            keyspec.spec.validate(d[k]), self.tag, k
+                        )
+                    else:
+                        yield ErrorDetails(
+                            message=f"Mapping missing key {k}",
+                            pred=keyspec.spec,
+                            value=d,
+                            via=[self.tag],
+                            path=[k],
+                        )
         except (AttributeError, TypeError):
             yield ErrorDetails(
                 message="Value is not a mapping type",
@@ -645,10 +655,6 @@ class DictSpec(Spec):
             )
             return
 
-        for k, vspec in self._optkeyspecs.items():
-            if k in d:
-                yield from _enrich_errors(vspec.validate(d[k]), self.tag, k)
-
     # pylint: disable=protected-access
     @classmethod
     def merge(
@@ -661,11 +667,10 @@ class DictSpec(Spec):
 
         map_pred: MutableMapping[Hashable, List[SpecPredicate]] = defaultdict(list)
         for spec in specs:
-            for k, pred in spec._reqkeyspecs.items():
-                map_pred[k].append(pred)
-
-            for k, pred in spec._optkeyspecs.items():
-                map_pred[OptionalKey(k)].append(pred)
+            for k, keyspec in spec._keyspecs.items():
+                map_pred[OptionalKey(k) if keyspec.is_optional else k].append(
+                    keyspec.spec
+                )
 
         return cls.from_val(
             tag or f"merge-of-{'-'.join(spec.tag for spec in specs)}",

diff --git a/tests/test_base.py b/tests/test_base.py
index a8185c2..0834554 100644
--- a/tests/test_base.py
+++ b/tests/test_base.py
@@ -400,23 +400,35 @@ class TestDictSpecConformation:
                 s.opt("date_of_birth"): s.str(
                     "date_of_birth", format_="iso-date", conformer=fromisoformat
                 ),
+                "favorite_color": {"Red", "Green", "Blue"},
             }
         )
 
     def test_dict_conformation(self, dict_spec: Spec):
         conformed = dict_spec.conform(
-            {"first_name": "chris", "last_name": "rink", "date_of_birth": "1990-01-14"}
+            {
+                "first_name": "chris",
+                "last_name": "rink",
+                "date_of_birth": "1990-01-14",
+                "favorite_color": "Blue",
+            }
         )
         assert isinstance(conformed, dict)
         assert "Chris" == conformed["first_name"]
         assert "Rink" == conformed["last_name"]
         assert date(year=1990, month=1, day=14) == conformed["date_of_birth"]
+        assert ["first_name", "last_name", "date_of_birth", "favorite_color"] == list(
+            conformed.keys()
+        )
 
-        conformed = dict_spec.conform({"first_name": "peter", "last_name": "criss"})
+        conformed = dict_spec.conform(
+            {"first_name": "peter", "last_name": "criss", "favorite_color": "Red"}
+        )
         assert isinstance(conformed, dict)
         assert "Peter" == conformed["first_name"]
         assert "Criss" == conformed["last_name"]
         assert None is conformed.get("date_of_birth")
+        assert ["first_name", "last_name", "favorite_color"] == list(conformed.keys())
 
 
 class TestKVSpecValidation:

Keys marked with `s.opt` in a mapping Spec will be out of order after conformation
The default conformer for mapping Specs using `s.opt` always places optional keys at the end of the conformed map. No one should be relying on the ordering of the conformed keys, but it may still be worthwhile to preserve that key order since Python dicts preserve it.
tests/test_base.py::TestDictSpecConformation::test_dict_conformation
tests/test_base.py::TestCollSpecValidation::test_error_details[v0-path0] tests/test_base.py::TestCollSpecValidation::test_error_details[v1-path1] tests/test_base.py::TestCollSpecValidation::test_error_details[v2-path2] tests/test_base.py::TestCollSpecValidation::test_coll_spec_kwargs[kwargs0] tests/test_base.py::TestCollSpecValidation::test_coll_spec_kwargs[kwargs1] tests/test_base.py::TestCollSpecValidation::test_coll_spec_kwargs[kwargs2] tests/test_base.py::TestCollSpecValidation::TestAllowStr::test_allow_str_validation tests/test_base.py::TestCollSpecValidation::TestAllowStr::test_kind_validation_failure tests/test_base.py::TestCollSpecValidation::TestMinlengthValidation::test_min_minlength[-1] tests/test_base.py::TestCollSpecValidation::TestMinlengthValidation::test_min_minlength[-100] tests/test_base.py::TestCollSpecValidation::TestMinlengthValidation::test_int_minlength[-0.5] tests/test_base.py::TestCollSpecValidation::TestMinlengthValidation::test_int_minlength[0.5] tests/test_base.py::TestCollSpecValidation::TestMinlengthValidation::test_int_minlength[2.71] tests/test_base.py::TestCollSpecValidation::TestMinlengthValidation::test_minlength_spec[coll0] tests/test_base.py::TestCollSpecValidation::TestMinlengthValidation::test_minlength_spec[coll1] tests/test_base.py::TestCollSpecValidation::TestMinlengthValidation::test_minlength_spec_failure[coll0] tests/test_base.py::TestCollSpecValidation::TestMinlengthValidation::test_minlength_spec_failure[coll1] tests/test_base.py::TestCollSpecValidation::TestMinlengthValidation::test_minlength_spec_failure[coll2] tests/test_base.py::TestCollSpecValidation::TestMinlengthValidation::test_minlength_spec_failure[coll3] tests/test_base.py::TestCollSpecValidation::TestMaxlengthValidation::test_min_maxlength[-1] tests/test_base.py::TestCollSpecValidation::TestMaxlengthValidation::test_min_maxlength[-100] tests/test_base.py::TestCollSpecValidation::TestMaxlengthValidation::test_int_maxlength[-0.5] tests/test_base.py::TestCollSpecValidation::TestMaxlengthValidation::test_int_maxlength[0.5] tests/test_base.py::TestCollSpecValidation::TestMaxlengthValidation::test_int_maxlength[2.71] tests/test_base.py::TestCollSpecValidation::TestMaxlengthValidation::test_maxlength_spec[coll0] tests/test_base.py::TestCollSpecValidation::TestMaxlengthValidation::test_maxlength_spec[coll1] tests/test_base.py::TestCollSpecValidation::TestMaxlengthValidation::test_maxlength_spec[coll2] tests/test_base.py::TestCollSpecValidation::TestMaxlengthValidation::test_maxlength_spec_failure[coll0] tests/test_base.py::TestCollSpecValidation::TestMaxlengthValidation::test_maxlength_spec_failure[coll1] tests/test_base.py::TestCollSpecValidation::TestMaxlengthValidation::test_maxlength_spec_failure[coll2] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_min_count[-1] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_min_count[-100] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_int_count[-0.5] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_int_count[0.5] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_int_count[2.71] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_maxlength_spec[coll0] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_count_spec_failure[coll0] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_count_spec_failure[coll1] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_count_spec_failure[coll2] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_count_spec_failure[coll3] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_count_spec_failure[coll4] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_count_and_minlength_or_maxlength_agreement[opts0] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_count_and_minlength_or_maxlength_agreement[opts1] tests/test_base.py::TestCollSpecValidation::TestCountValidation::test_count_and_minlength_or_maxlength_agreement[opts2] tests/test_base.py::TestCollSpecValidation::test_minlength_and_maxlength_agreement tests/test_base.py::TestCollSpecValidation::TestKindValidation::test_kind_validation[frozenset] tests/test_base.py::TestCollSpecValidation::TestKindValidation::test_kind_validation[list] tests/test_base.py::TestCollSpecValidation::TestKindValidation::test_kind_validation[set] tests/test_base.py::TestCollSpecValidation::TestKindValidation::test_kind_validation[tuple] tests/test_base.py::TestCollSpecValidation::TestKindValidation::test_kind_validation_failure[frozenset] tests/test_base.py::TestCollSpecValidation::TestKindValidation::test_kind_validation_failure[list] tests/test_base.py::TestCollSpecValidation::TestKindValidation::test_kind_validation_failure[set] tests/test_base.py::TestCollSpecValidation::TestKindValidation::test_kind_validation_failure[tuple] tests/test_base.py::TestCollSpecConformation::test_coll_conformation tests/test_base.py::TestCollSpecConformation::test_set_coll_conformation tests/test_base.py::TestDictSpecValidation::test_dict_spec_definition[pred0] tests/test_base.py::TestDictSpecValidation::test_dict_spec_definition[pred1] tests/test_base.py::TestDictSpecValidation::test_dict_spec[d0] tests/test_base.py::TestDictSpecValidation::test_dict_spec[d1] tests/test_base.py::TestDictSpecValidation::test_dict_spec[d2] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[None] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[a tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[0] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[3.14] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[True] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[False] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[d6] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[d7] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[d8] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[d9] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[d10] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[d11] tests/test_base.py::TestDictSpecValidation::test_dict_spec_failure[d12] tests/test_base.py::TestDictSpecValidation::test_error_details[v0-path0] tests/test_base.py::TestDictSpecValidation::test_error_details[v1-path1] tests/test_base.py::TestDictSpecValidation::test_error_details[v2-path2] tests/test_base.py::TestKVSpecValidation::test_kv_spec_definition[args0] tests/test_base.py::TestKVSpecValidation::test_kv_spec_definition[args1] tests/test_base.py::TestKVSpecValidation::test_kv_spec_definition[args2] tests/test_base.py::TestKVSpecValidation::test_kv_spec[d0] tests/test_base.py::TestKVSpecValidation::test_kv_spec[d1] tests/test_base.py::TestKVSpecValidation::test_kv_spec[d2] tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[None] tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[a tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[0] tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[3.14] tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[True] tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[False] tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[d6] tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[d7] tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[d8] tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[d9] tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[d10] tests/test_base.py::TestKVSpecValidation::test_kv_spec_failure[d11] tests/test_base.py::TestKVSpecConformation::test_kv_spec_conformation[orig0-conformed0] tests/test_base.py::TestKVSpecConformation::test_kv_spec_conformation[orig1-conformed1] tests/test_base.py::TestKVSpecConformation::test_kv_spec_conformation[orig2-conformed2] tests/test_base.py::TestKVSpecConformation::test_kv_spec_conform_keys_conformation[orig0-conformed0] tests/test_base.py::TestKVSpecConformation::test_kv_spec_conform_keys_conformation[orig1-conformed1] tests/test_base.py::TestKVSpecConformation::test_kv_spec_conform_keys_conformation[orig2-conformed2] tests/test_base.py::TestObjectSpecValidation::test_obj_spec_definition_with_duplicate_keys[pred0] tests/test_base.py::TestObjectSpecValidation::test_obj_spec_definition_with_duplicate_keys[pred1] tests/test_base.py::TestObjectSpecValidation::test_object_spec_construction tests/test_base.py::TestObjectSpecValidation::test_obj_spec[o0] tests/test_base.py::TestObjectSpecValidation::test_obj_spec[o1] tests/test_base.py::TestObjectSpecValidation::test_obj_spec[o2] tests/test_base.py::TestObjectSpecValidation::test_obj_spec_failure[o0] tests/test_base.py::TestObjectSpecValidation::test_obj_spec_failure[o1] tests/test_base.py::TestObjectSpecValidation::test_obj_spec_failure[o2] tests/test_base.py::TestObjectSpecValidation::test_obj_spec_failure[o3] tests/test_base.py::TestObjectSpecValidation::test_missing_and_optional_attrs tests/test_base.py::TestSetSpec::test_set_spec tests/test_base.py::TestSetSpec::test_set_spec_conformation tests/test_base.py::TestEnumSetSpec::test_enum_spec tests/test_base.py::TestEnumSetSpec::test_enum_spec_conformation tests/test_base.py::TestTupleSpecValidation::test_tuple_spec[row0] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec[row1] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec[row2] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[None] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[a tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[0] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[3.14] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[True] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[False] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[row6] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[row7] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[row8] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[row9] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[row10] tests/test_base.py::TestTupleSpecValidation::test_tuple_spec_failure[row11] tests/test_base.py::TestTupleSpecValidation::test_error_details[v0-path0] tests/test_base.py::TestTupleSpecValidation::test_error_details[v1-path1] tests/test_base.py::TestTupleSpecConformation::test_tuple_conformation tests/test_base.py::TestTupleSpecConformation::test_namedtuple_conformation tests/test_base.py::TestAllSpecConstruction::test_all_spec_must_have_pred tests/test_base.py::TestAllSpecConstruction::test_passthrough_spec tests/test_base.py::TestAllSpecValidation::test_all_validation[c5a28680-986f-4f0d-8187-80d1fbe22059] tests/test_base.py::TestAllSpecValidation::test_all_validation[3BE59FF6-9C75-4027-B132-C9792D84547D] tests/test_base.py::TestAllSpecValidation::test_all_failure[6281d852-ef4d-11e9-9002-4c327592fea9] tests/test_base.py::TestAllSpecValidation::test_all_failure[0e8d7ceb-56e8-36d2-9b54-ea48d4bdea3f] tests/test_base.py::TestAllSpecValidation::test_all_failure[10988ff4-136c-5ca7-ab35-a686a56c22c4] tests/test_base.py::TestAllSpecValidation::test_all_failure[] tests/test_base.py::TestAllSpecValidation::test_all_failure[5_0] tests/test_base.py::TestAllSpecValidation::test_all_failure[abcde] tests/test_base.py::TestAllSpecValidation::test_all_failure[ABCDe] tests/test_base.py::TestAllSpecValidation::test_all_failure[5_1] tests/test_base.py::TestAllSpecValidation::test_all_failure[3.14] tests/test_base.py::TestAllSpecValidation::test_all_failure[None] tests/test_base.py::TestAllSpecValidation::test_all_failure[v10] tests/test_base.py::TestAllSpecValidation::test_all_failure[v11] tests/test_base.py::TestAllSpecValidation::test_all_failure[v12] tests/test_base.py::TestAllSpecConformation::test_all_spec_conformation[yes-YesNo.YES] tests/test_base.py::TestAllSpecConformation::test_all_spec_conformation[Yes-YesNo.YES] tests/test_base.py::TestAllSpecConformation::test_all_spec_conformation[yES-YesNo.YES] tests/test_base.py::TestAllSpecConformation::test_all_spec_conformation[YES-YesNo.YES] tests/test_base.py::TestAllSpecConformation::test_all_spec_conformation[no-YesNo.NO] tests/test_base.py::TestAllSpecConformation::test_all_spec_conformation[No-YesNo.NO] tests/test_base.py::TestAllSpecConformation::test_all_spec_conformation[nO-YesNo.NO] tests/test_base.py::TestAllSpecConformation::test_all_spec_conformation[NO-YesNo.NO] tests/test_base.py::TestAnySpecConstruction::test_any_spec_must_have_pred tests/test_base.py::TestAnySpecConstruction::test_passthrough_spec tests/test_base.py::TestAnySpecValidation::test_any_validation[5_0] tests/test_base.py::TestAnySpecValidation::test_any_validation[5_1] tests/test_base.py::TestAnySpecValidation::test_any_validation[3.14] tests/test_base.py::TestAnySpecValidation::test_any_validation_failure[None] tests/test_base.py::TestAnySpecValidation::test_any_validation_failure[v1] tests/test_base.py::TestAnySpecValidation::test_any_validation_failure[v2] tests/test_base.py::TestAnySpecValidation::test_any_validation_failure[v3] tests/test_base.py::TestAnySpecConformation::test_conformation[5-5_0] tests/test_base.py::TestAnySpecConformation::test_conformation[5-5_1] tests/test_base.py::TestAnySpecConformation::test_conformation[3.14-3.14] tests/test_base.py::TestAnySpecConformation::test_conformation[-10--10] tests/test_base.py::TestAnySpecConformation::test_conformation_failure[None] tests/test_base.py::TestAnySpecConformation::test_conformation_failure[v1] tests/test_base.py::TestAnySpecConformation::test_conformation_failure[v2] tests/test_base.py::TestAnySpecConformation::test_conformation_failure[v3] tests/test_base.py::TestAnySpecConformation::test_conformation_failure[500x] tests/test_base.py::TestAnySpecConformation::test_conformation_failure[Just tests/test_base.py::TestAnySpecConformation::test_conformation_failure[500] tests/test_base.py::TestAnySpecConformation::test_conformation_failure[byteword] tests/test_base.py::TestAnySpecConformation::test_tagged_conformation[expected0-5] tests/test_base.py::TestAnySpecConformation::test_tagged_conformation[expected1-5] tests/test_base.py::TestAnySpecConformation::test_tagged_conformation[expected2-3.14] tests/test_base.py::TestAnySpecConformation::test_tagged_conformation[expected3--10] tests/test_base.py::TestAnySpecConformation::test_tagged_conformation_failure[None] tests/test_base.py::TestAnySpecConformation::test_tagged_conformation_failure[v1] tests/test_base.py::TestAnySpecConformation::test_tagged_conformation_failure[v2] tests/test_base.py::TestAnySpecConformation::test_tagged_conformation_failure[v3] tests/test_base.py::TestAnySpecConformation::test_tagged_conformation_failure[500x] tests/test_base.py::TestAnySpecConformation::test_tagged_conformation_failure[Just tests/test_base.py::TestAnySpecConformation::test_tagged_conformation_failure[500] tests/test_base.py::TestAnySpecConformation::test_tagged_conformation_failure[byteword] tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation[10-5_0] tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation[10-5_1] tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation[8.14-3.14] tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation[-5--10] tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation_failure[None] tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation_failure[v1] tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation_failure[v2] tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation_failure[v3] tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation_failure[500x] tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation_failure[Just tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation_failure[500] tests/test_base.py::TestAnySpecWithOuterConformation::test_conformation_failure[byteword] tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation[expected0-5] tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation[expected1-5] tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation[expected2-3.14] tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation[expected3--10] tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation_failure[None] tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation_failure[v1] tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation_failure[v2] tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation_failure[v3] tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation_failure[500x] tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation_failure[Just tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation_failure[500] tests/test_base.py::TestAnySpecWithOuterConformation::test_tagged_conformation_failure[byteword] tests/test_base.py::TestMergeSpecConstruction::test_merge_spec_must_have_pred tests/test_base.py::TestMergeSpecConstruction::test_passthrough_spec tests/test_base.py::TestMergeSpecConstruction::test_must_all_be_mapping_specs tests/test_base.py::TestMergeSpecConstruction::test_allow_overlapping_required_and_optional tests/test_base.py::TestMergeSpecConstruction::test_no_overlapping_required_and_optional tests/test_base.py::TestMergeSpecValidation::test_merge_validation[v0] tests/test_base.py::TestMergeSpecValidation::test_merge_validation[v1] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[5_0] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[abcde] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[ABCDe] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[5_1] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[3.14] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[None] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[v7] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[v8] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[v9] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[v10] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[v11] tests/test_base.py::TestMergeSpecValidation::test_merge_failure[v12] tests/test_base.py::TestTypeSpec::test_typecheck[None-vals0] tests/test_base.py::TestTypeSpec::test_typecheck[bool-vals1] tests/test_base.py::TestTypeSpec::test_typecheck[bytes-vals2] tests/test_base.py::TestTypeSpec::test_typecheck[dict-vals3] tests/test_base.py::TestTypeSpec::test_typecheck[float-vals4] tests/test_base.py::TestTypeSpec::test_typecheck[int-vals5] tests/test_base.py::TestTypeSpec::test_typecheck[list-vals6] tests/test_base.py::TestTypeSpec::test_typecheck[set-vals7] tests/test_base.py::TestTypeSpec::test_typecheck[str-vals8] tests/test_base.py::TestTypeSpec::test_typecheck[tuple-vals9] tests/test_base.py::TestTypeSpec::test_typecheck_failure[bool] tests/test_base.py::TestTypeSpec::test_typecheck_failure[bytes] tests/test_base.py::TestTypeSpec::test_typecheck_failure[dict] tests/test_base.py::TestTypeSpec::test_typecheck_failure[float] tests/test_base.py::TestTypeSpec::test_typecheck_failure[int] tests/test_base.py::TestTypeSpec::test_typecheck_failure[list] tests/test_base.py::TestTypeSpec::test_typecheck_failure[set] tests/test_base.py::TestTypeSpec::test_typecheck_failure[str] tests/test_base.py::TestTypeSpec::test_typecheck_failure[tuple]