def attribute(name, type = nil, description = nil, **kwargs, &block)
        if @_attributes.map(&:name).include?(name)
          fail AttributeError, "Attribute #{name} is already defined"
        else
          @_attributes <<