def normalize_arguments(event_name, arg_owner, args)
      case arg_owner
      when GraphQL::Field, GraphQL::InputObjectType
        normalized_args = {}
        missing_arg_names = []
        args.each do |k, v|
          arg_name = k.to_s
          arg_defn = arg_owner.arguments[arg_name]
          if arg_defn
            normalized_arg_name = arg_name
          else
            normalized_arg_name = normalize_name(arg_name)
            arg_defn = arg_owner.arguments[normalized_arg_name]
          end

          if arg_defn
            normalized_args[normalized_arg_name] = normalize_arguments(event_name, arg_defn.type, v)
          else
            # Couldn't find a matching argument definition
            missing_arg_names << arg_name
          end
        end

        if missing_arg_names.any?
          arg_owner_name = if arg_owner.is_a?(GraphQL::Field)
            "Subscription.#{arg_owner.name}"
          else
            arg_owner.to_s
          end
          raise InvalidTriggerError, "Can't trigger Subscription.#{event_name}, received undefined arguments: #{missing_arg_names.join(", ")}. (Should match arguments of #{arg_owner_name}.)"
        end

        normalized_args
      when GraphQL::ListType
        args.map { |a| normalize_arguments(event_name, arg_owner.of_type, a) }
      when GraphQL::NonNullType
        normalize_arguments(event_name, arg_owner.of_type, args)
      else
        args
      end
    end
def normalize_arguments(event_name, arg_owner, args)
      case arg_owner
      when GraphQL::Field, GraphQL::InputObjectType
        normalized_args = {}
        missing_arg_names = []
        args.each do |k, v|
          arg_name = k.to_s
          arg_defn = arg_owner.arguments[arg_name]
          if arg_defn
            normalized_arg_name = arg_name
          else
            normalized_arg_name = normalize_name(arg_name)
            arg_defn = arg_owner.arguments[normalized_arg_name]
          end

          if arg_defn
            normalized_args[normalized_arg_name] = normalize_arguments(event_name, arg_defn.type, v)
          else
            # Couldn't find a matching argument definition
            missing_arg_names << arg_name
          end
        end

        if missing_arg_names.any?
          arg_owner_name = if arg_owner.is_a?(GraphQL::Field)
            "Subscription.#{arg_owner.name}"
          else
            arg_owner.to_s
          end
          raise InvalidTriggerError, "Can't trigger Subscription.#{event_name}, received undefined arguments: #{missing_arg_names.join(", ")}. (Should match arguments of #{arg_owner_name}.)"
        end

        normalized_args
      when GraphQL::ListType
        args.map { |a| normalize_arguments(event_name, arg_owner.of_type, a) }
      when GraphQL::NonNullType
        normalize_arguments(event_name, arg_owner.of_type, args)
      else
        args
      end
    end
Recursively normalize `args` as belonging to `arg_owner`:
 - convert symbols to strings,
 - if needed, camelize the string (using {#normalize_name})
 @param arg_owner [GraphQL::Field, GraphQL::BaseType]
 @param args [Hash, Array, Any] some GraphQL input value to coerce as `arg_owner`
 @return [Any] normalized arguments value