What makes Graph invariants so useful/important? If I were trying to create a useful graph invariant, what principles should I follow?
My understanding is that they allow one to isolate and study specific properties of graphs algebraically or to classify graphs up to isomorphism (although, it seems to me that canonical labellings are the right tool for this).
However, important graph invariants are constructed from counting proper colorings of a graph, for an appropriate definition of proper. A priori, why do we know that those graph invariants isolate and study specific properties or is there some other key motivation for graph invariants?