The first list is embedded schemas that validate the same piece
of data this schema validates (such as schemas embedded in allOf
).
The second is embedded schemas that validate a subset of that data
(such as the schemas embedded in items
).
This is done to allow static detection of loops, though this isn't
implemented yet (though the Draft4 code does do live loop detection
during validation).