Contract State and Change
Should this new style contract be a program that participants agree to execute and that runs until succeeding or failing? Or is it a collection of values continually evaluated by a function that returns the state of the contract?
The latter seems more straightforward, both in implementation and usability. The parameters could be any number of values: time, account balance, user input, results of web service calls, or even sensor values. The evaluation function then returns the status of the contract: In Progress, Breached, or Completed. It is also easy enough to record the history of the values each time they are evaluated, making it possible to create tracebacks that connect value changes (stock price, missing a deadline, pushing a button) to contract success or failure.
The evaluation function could be created without code, perhaps with an interface along the lines of filter tools in mail clients. Rather than evaluating incoming emails based on their characteristics, we evaluate contracts based on their state values.

