title: Python marshmallow validation depnding on item index
body: <p>I have schema similar to below one: </p>
  
  <pre><code>class MySchema(Schema):
      nested = fields.Nested(
          NestedSchema, required=True, many=True, validate=[validate.Length(min=1)]
      )
  
  class NestedSchema(Schema):
      somefield = fields.Field()
      somefield2 = fields.Field()
  </code></pre>
  
  <p>I would like my <code>somefield</code> field to be required but only for the first item from list. Does anyone know how to achieve that?</p>
  
  <p>If it's possible I would also like to keep my error message inside proper element i returned errors dict:</p>
  
  <pre><code>{
      'nested': {
          0: {
              'somefield': ['This field is required']
          }
      }
  }
  </code></pre>
  
  <p>I already tried to do it with <code>pre_load</code> and <code>validates_schema</code> but I cannot place message in proper place in errors dict. Problem is <code>somefield</code> error is placed in <code>_schema</code> or like this:</p>
  
  <pre><code>{
      'nested': {
          'somefield': ['This field is required']
      }
  }
  </code></pre>
  
  <p>Sample preload:</p>
  
  <pre><code>@pre_load(pass_many=True)
  def validate_somefield(self, data, many):
      try:
          address = data[0]
      except IndexError:
          pass
      else:
          if address.get('somefield') is None:
              raise ValidationError(
                  'somefield is required for first element'
              )
  </code></pre>