The interface. The forward facing, public viewed part of your system-of-code or library. Regardless of how much effort it took to get right. How difficult you felt it was. Is, when all is said and done, just the instructions needed to interface with the much larger body of work behind it. It also marks the threshold by which in the old days you used to be able to rely on copyright.
Now unfortunately that distinction has been removed.
If another company spends years writing code that uses that interface you do not have the right to tie them forever to using your code. They have the right to get or write their own drop in replacement to do the same work as your code and implements the same API.
Fair use has been ruled in this case (and shouldn't have to have been) but I wonder if now competitors offering a better-yet-compatible product are going to be having to constantly defend themselves in court.