schema_types(agooErr err, gqlDoc doc, gqlCobj obj, gqlField field, gqlSel sel, gqlValue result, int depth) {
    const char		*key = sel->name;
    gqlValue		list = gql_list_create(err, NULL);
    struct _schemaCbCtx	scc = {
	.err = err,
	.doc = doc,
	.sel = sel,
	.depth = depth + 1,
	.list = list,
    };

    if (NULL != sel->alias) {
	key = sel->alias;
    }
    if (NULL == list ||
	AGOO_ERR_OK != gql_object_set(err, result, key, list)) {
	return err->code;
    }
    gql_type_iterate(schema_types_cb, &scc);

    return err->code;
}
schema_types(agooErr err, gqlDoc doc, gqlCobj obj, gqlField field, gqlSel sel, gqlValue result, int depth) {
    const char		*key = sel->name;
    gqlValue		list = gql_list_create(err, NULL);
    struct _schemaCbCtx	scc = {
	.err = err,
	.doc = doc,
	.sel = sel,
	.depth = depth + 1,
	.list = list,
    };

    if (NULL != sel->alias) {
	key = sel->alias;
    }
    if (NULL == list ||
	AGOO_ERR_OK != gql_object_set(err, result, key, list)) {
	return err->code;
    }
    gql_type_iterate(schema_types_cb, &scc);

    return err->code;
}