An enhanced approach to service specification strikes a better balance between machine processibility and human readability, and emphasizes testing- as well as reasoning-based assurance techniques. Built-in tests check the compatibility of interacting services at runtime and automatically pinpoint contract mismatches.