CSDL: A Language for Cooperative Systems Design