SMS: Principles of the law of software contracts