class Cucumber::Messages::TestStep

def self.from_h(hash)

#
Cucumber::Messages::TestStep.from_h(some_hash) # => #

corresponding snake_cased attributes.
If the hash keys are camelCased, they are properly assigned to the
Returns a new TestStep from the given hash.
#
def self.from_h(hash)
  return nil if hash.nil?
  new(
    hook_id: hash[:hookId],
    id: hash[:id],
    pickle_step_id: hash[:pickleStepId],
    step_definition_ids: hash[:stepDefinitionIds],
    step_match_arguments_lists: hash[:stepMatchArgumentsLists]&.map { |item| StepMatchArgumentsList.from_h(item) }
  )
end