global

def rbs_new_args

to its const.
command method passes it through), so it is advertised as an optional keyword typed
value is ignored — but the lenient `**kwargs` constructor still accepts it (and a
type, plus the optional extensions bag. The fixed discriminator is baked, so its
The keyword arguments `self.new` accepts: each constructable field with its value
def rbs_new_args
  parts = []
  parts << "?#{discriminator[:ruby_name]}: #{discriminator[:rbs]}" if discriminator
  parts.concat(fields.map(&:rbs_arg))
  parts << '?extensions: untyped' if extensible
  parts.join(', ')
end