For Happening I made a Map API. The target of the API is to offer an easy interface for plugin developers to use maps in their plugins. Since the Happening plugin platform uses a reactive DOM structure all of the map components also need to support this. The map itself uses OpenStreetMap, tiles from MapQuest and the Leaflet API. The map API supports a couple of things, first of all rendering as many maps as you want, with a bunch of settings like minimum zoom level, maximum zoom level, tap events and even marker clustering. After a map is rendered there are functions to render things on the map, like markers (with html content), circles, rectangles, polygons and image layers. And there are function to get and change the state of the map, for example getting the current location of the map, the current zoom level, or setting these values. The full API can be found in the Docs repo of Happening on GitHub.