Calling #messages(full: true) gives unexpected results

Hi
Consider this form:

class Form < Dry::Validation::Contract
  params do
    required(:list).maybe(:array)
  end

  rule(:list) do 
    unless value.nil?
      value.each_with_index do |value, index|
        key([:list, index]).failure("is in invalid format") unless my_method(value)
      end
    end
  end
end

When I do:
form = Form.new.call({list: [1, 11,144]})
form.messages(full: true)
I get:
{:list => {0 =>[“1 is in invalid format”]} }
but I was expecting
{:list => {0 =>[“list is in invalid format”]} }

Do you know how I can achieve this?