I would like to find or create a syntax to express business contracts programmatically, and I am looking for a robust, flexible, future-resistant way to do this.
A client should be able to add a negotiation points of varying types to the contract.
An example of a boolean negotiation point:
- "There is a pre-payment penalty?" (yes/no)
While the above is certainly doable, it seems more difficult to describe the relationships between the negotiation points in an abstract way.
- $600 is paid by "Client A" for inspection.
- The above amount is paid by "Client B" if condition Y (information that should have been disclosed before the inspection was not disclosed).
Some other possible functionality:
- Virtual fields are calculated based on the numeric values of other fields.
It certainly seems like XML or possibly JSON-schema are possible candidates for describing the above. But I am open to other options.