open client-server contracting

. the human user of a program is one example of
a client using a server .
. when server and client can both control a parameter
then both can be notified when the other has changed things;
a server can refuse to work with client`changes;
but, servers can't secretly make changes .