Environment Programming in Multi-Agent Systems: An Artifact-Based Perspective