Good points, all.
The companies which got profoundly rich in software during my career (Microsoft, Oracle) owned a piece of software, which the end user had to pay a license for, over which an entire ecosystem of applications was written. This was actually an improvement over the previous generation, in which IBM got profoundly rich owning not just the platform, but was vertically integrated owning many of the applications and services layered over that as well.
Owning that code, and its interfaces so the code couldn’t be cloned, was essential to keeping that revenue stream going. When this kind of platform work is done in open source (which is the rational response to monopolist rents), some form of governance is needed to keep those interfaces standard, lest we get back to the old Unix “tower of Babel” problem of my application runs only on this exact version and patch level of Solaris, that version and patch level of HP UX, and so on with AIX.
The same occurred, by the way, in software intensive products like Cisco routers and switches. Those, like your work, were closer to the customer, but even then an ecosystem built up around them. Interestingly, that software was significant enough that it was the target of state sponsored industrial espionage, in support of an emerging competitor headquartered in that country. Precedent, on a smaller scale and without state sponsorship, occurred at a Japanese maker of plug compatible IBM mainframes.
I absolutely understand that when code is doing something for an end user or directly for a business process, and is layered over open source, the value is in that evolving experience and the code is a rapidly evolving means to that end. In that case it is much less important to protect portions of that code, and much more important to make sure the people who have their heads around the problem don’t move as a group to start a competing business.