This release completely refactors the graph building algorithm based on a new `Algorithm` protocol. This removes the need to have `Tuple` types for annotating complex inputs. Besides, all semantic types have been completely re-implemented using Python metaclasses to better support type annotations and other magics.