Redesign GraphAdapter functionality given new Graph interface
Created by: gkirgizov
Requirements
- There must be specific points in the system architecture where adapter is applied automatically
- Mutations & other evolutionary operators shouldn't worry (or even know) about adapter -- they just must get OptGraph or the domain structure (e.g. Pipeline) that they need automatically
- Adapter should be optional (e.g. if Pipeline inherits from Graph -- then in fact adapter has nothing to adapt and hence isn't really needed)
(upd) found a fun fact: there was a PEP that proposed adding Adapters at the language level https://peps.python.org/pep-0246/