Describir: Programming multi-agent systems