- mixtures
- Markush groups
- polymers from repeat units
- reactions
- toasters
InChI has it's firm place when the purpose is to represent, refer to, identify basic molecular structures. That's it. If you want mixtures, reactions, polymer repeat units, consider using InChI as the core building block and then build higher order structures around it. For example, obviously there is no reason to push reactions into the InChI representation, just make a simple structure that lists the reaction participants on both sides, their stoichiometry and the enthalpy, activation energies, etc. etc., these can be done in higher order data structures much better than shoving that information into a single InChI++ string. Likewise for polymers, represent each repeat unit as an InChI and then combine them. If your goal is such higher order molecules, you would profitably use InChI as the representation of those core building blocks.
Now that said, I give you my personal pet peeve about InChI, i.e., that is in scope of current InChI where I think it has, let's say, pitfalls, not necessarily that it made the wrong choice. And that is, ionic bonds and coordination bonds. Especially ionic bonds are represented as two separate structures, recognizable with the period .
in the formula separating the multiple structures. This is actually a rudimentary representation of mixtures. So in my view, it should not even have introduced this dot notation but simply forced people to represent the parts of these ionic mixes as separate InChIs. I come from the biochemical / physiology / pharmaceutical / medical world where such ionic bonds usually do not even really exist in nature, as the ions are all dissociated in solution. But all that can be disputed. Same for metal coordination or chelate bonds, you want to say where the metal ion associates with, and I think that's not in InChI. So in my world it would be better not to have any of this mixing and coordination inside InChI and we would use higher order structures for it instead, but always use InChI as the basic building blocks.