Add support for recursive schemas