I did make some modifications to your extensions in pyfinf so that it only works with explicitly tagged `omap`s.  The problem I ran into is this ambiguity when I was writing some schemas:

```yaml
anyOf:
  - type: string
  - type: number
```

When I had the implicit ordered dict stuff on, this would get parsed as:

```
OrderedDict([("type": "string"), ("type": "number")])
```

which, since the keys are the same, actually boils down to:

```
OrderedDict([('type', 'number')])
```

But what I wanted to say was:

```
[{"type": "string"}, {"type": "number"}]
```

There might be a way around this, such as a different way to construct the list-of-dicts that I wasn't aware of.  But I found the ambiguity confusing.

I'm fine with explicit `omap` tags going to/from OrderedDicts, as long as we don't rely on that working for other languages where an ordered mapping type may not exist.