So, I think this unfortunately is a kind of critical issue – you can't really know what parts of your schema are subschemas, that's something defined by each validator.

For example, it's `properties` that defines that its values are schemas, that isn't a truism, you can define a validator whose values are not schemas if you'd like.

To properly do this I think you'd need to have each validator *declare* that it has schemas that can be found by doing XYZ (so, items would say to iterate over them, properties would say to ask values).