def add_child(name, opts = {}, &block)
      delete_property(name)
      properties << ChildDeclaration.new(name, opts.delete(:class), opts, &block)
    end
def add_child(name, opts = {}, &block)
      delete_property(name)
      properties << ChildDeclaration.new(name, opts.delete(:class), opts, &block)
    end
Add a ChildDeclaration to this mapping

 @param [Symbol] name
 @param [Hash] opts accepts options; expected options: :class

 @return [ChildDeclaration]