def recursive_valid?(target, context, state)
      valid = state
      target.each do |key, prop|
        if prop.is_a?(Array)
          prop.each do |item|
            if item.validatable?
              valid = recursive_valid?(item, context, valid) && valid
            end
          end
        elsif prop.validatable?
          valid = recursive_valid?(prop, context, valid) && valid
        end
      end
      target._run_validate_callbacks do
        target.class.validators.execute(context, target) && valid
      end
    end
def recursive_valid?(target, context, state)
      valid = state
      target.each do |key, prop|
        if prop.is_a?(Array)
          prop.each do |item|
            if item.validatable?
              valid = recursive_valid?(item, context, valid) && valid
            end
          end
        elsif prop.validatable?
          valid = recursive_valid?(prop, context, valid) && valid
        end
      end
      target._run_validate_callbacks do
        target.class.validators.execute(context, target) && valid
      end
    end
Do recursive validity checking