Associations, and corporations have their own inner rules. But national rules also affect them - they have to be defined in the context of national rules, and associations can decide to have certain national rules apply for them (for example, by specifying they are NGOs) - but they could also (theoretically !) build the same rule structure for themselves (i.e. have all the internal rules of an NGO, but not declare oneself as one).
And, I can see an analogy with programming - the rules of the land can be something like existing libraries from which you import code - you can also define your own local code.
from laws import NGO myAssociation = NGO() (...)
… and you see things like the static vs dynamic type checking versus static type checking. Maybe under some systems, your organization is "de facto" considered an NGO if it acts like one. Or maybe it needs to spefically register as one.
Seen this way, one of the functions of legislature is to provide "libraries" that can be reused (differently) in organisation charters, contracts, etc. for greater interoparibility.
What would be interesting would be to explain (though not here and now) how legislation works - which laws are applied, who decides to change them, etc. but from a programming perspective. In a sense, replacing one jargon with another.
This is related to the idea of PlainTalk. A problem with jargon in PainfulTalk (let's ignore the other causes for now) is not that jargon exists, but that different communities may use a different kind of jargon to talk about very similar ideas. Any move to provide "translations" between the jargons, or even to get people to use the same jargon is good. I'm sure that happened quite a lot in the history of science, when two fields that weren't related (electricity and magnetism ?) got tied together.
This ties in with the general idea of understanding society through online community experiments (like this one), and how they deal with problems …