Text this: Programming Distributed Collective Processes in the eXchange Calculus