This is a question deep into the sdk
While developing with the sdk, the property of any Pin called IsConnected can be incredibly useful to gain performance advantages.
An example would be providing meta information alongside the actual calculation, which might be only be patched into in 5% of the cases, but is potentially useful for all cases during design.
However, unless I explicitly specify a plugin input as a Pin, I will not have access to that property. Atm, this rules out the most used dynamically created ones, such as ISpread<ISpread> or plugins with configurable Pin Count.
It would be nice to get access to the IsConnected in all cases, even if that just means going through a Pin-proxy Enumeration.
I tried to solve the problem with reflections into private fields, and eventually found that it treats ISpreads quite differently when they are created with different values for CheckIfChanged or AutoFlush. Then I decided, that I don’t want to go the reflection route.
That said, solving this problem would finally allow a fix for the old problems of changing pin layouts remotely. Any potential link disconnect could be detected and force the user to act on the conflict. Without a safeguard like this in place links can break silently and potentially cause massive headaches.