Added:
* Added semantic handling of aromaticity / delocalization (by kekulizing SMILES with aromatic symbols before
they are translated into SELFIES by `selfies.encoder`).
* Added semantic handling of charged species (e.g. `[CH+]1CCC1`).
* Added semantic handling of radical species (`[CH]1CCC1`) or any species with explicit hydrogens (e.g. `CC[CH2]`).
* Added semantic handling of isotopes (e.g. `[14CH2]=C` or `[235U]`).
* Improved semantic handling of explicit atom symbols in square brackets, e.g. Carbene (`[C]=C`).
* Improved semantic handling of chirality (e.g. `O=C[Co](F)(Cl)(Br)(I)S`).
* Improved semantic handling of double-bond configuration (e.g. `F/C=C/C=C/C`).
* Added new functions to the library, such as `selfies.len_selfies` and
`selfies.split_selfies`.
* Added advanced-user functions to the library to customize the SELFIES semantic constraints, e.g.
`selfies.set_semantic_constraints`. Allows to encode for instance diborane, `[BH2]1[H][BH2][H]1`.
* Introduced new padding `[nop]` (no operation) symbol.
Changed:
* Optimized the indexing alphabet (it is base-16 now).
* Optimized the behaviours of rings and branches to fix an issue with specific non-standard molecules that could not be translated.
* Changed behaviour of Ring/Branch, such that states `X9991-X9993` are not necessary anymore.
* Significantly improved encoding and decoding algorithms, it is much faster now.
---