At the moment the backend has Elements derived from ComponentsInstances that are used to implement the actual circuit elements. Most of them derive from SimpleElement to get the capabilities the frontend expects while for example Interconnect shares a lot of them but only copy and pasted the corresponding functionality.
[ ] SimpleElement should be refactored to actually be simple to use. Currently metadata integration and update is haphazard and not very well to use. Why duplicate in members that are part of our metadata? Why only set it instead of reacting (rejecting/applying) to changes.
[ ] SimpleElements way of handling inputs and input-states feels wrong. Think about better ways to solve this
[ ] Some SimpleElement functionality might actually be functionality we want to expect from all Elements. If so move it up.
At the moment the backend has Elements derived from ComponentsInstances that are used to implement the actual circuit elements. Most of them derive from SimpleElement to get the capabilities the frontend expects while for example Interconnect shares a lot of them but only copy and pasted the corresponding functionality.