The current definition is ``` cation: str = "[+{1-},$([NX3&!$([NX3]-O)]-[C]=[NX3+])]", anion: str = "[-{1-},$(O=[C,S,P]-[O-])]", ``` I suggest a slightly more restrictive definition: ``` cation: str = "[+{1-}!$(*~[*-]),$([NX3&!$([NX3]-O)]-[C]=[NX3+])]", anion: str = "[-{1-}!$(*~[*+]),$(O=[C,S,P]-[O-])]", ``` such that an cation atom is defined as an atom with positive formal charge but not immediately connected to an atom with a negative formal charge. For example, dmso and azides are sometimes written as ``` C[S+](-[O-])C R-N=[N+]=[N-] ``` These are probably not what we are looking for when searching for 'ionic' interactions.