@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+require 'bolt/error'
+require 'bolt/config/transport'
+
+module Bolt
+  class Config
+    class Sudoable < Transport
+      private def validate
+        run_as_cmd = config['run-as-command']
+        if run_as_cmd && (!run_as_cmd.is_a?(Array) || run_as_cmd.any? { |n| !n.is_a?(String) })
+          raise Bolt::ValidationError,
+                "run-as-command must be an Array of Strings, received #{run_as_cmd.class} #{run_as_cmd.inspect}"
+        end
+      end
+    end
+  end
+end
I don't think this class provides enough value to be worth the extra complexity, especially since it's only performing half its job (it should also be _defining_ the options associated with `sudo` not just validating them).