What did you learn? Hash map keys can be complex: strings, tuples, or any hashable type.
The key should be a "canonical form" that's identical for equivalent items.
Different canonical forms have different trade-offs. Choose based on your constraints. This pattern appears in: grouping equivalent items, finding duplicates with custom equality, and caching with complex keys.