fix: recursively prepare schema