Whether the tool matches this one, if a tool matches another tool will be considered a duplicate
bool matches(Tool tool) { return tool.runtimeType == this.runtimeType; }