This is a mod for Minetest that enables diverse governance mechanisms. It seeks to implement the Modular Politics proposal. Ideally, in the future, it will be possible to use this framework to simulate governance in a number of platform contexts.
This mod produces an API that can serve as a dependency for other mods that add specific governance functionalities.
Currently modpol requires a Unix-style system. But it is intended to become more fully platform independent. Here, only the init.lua (and the optional storage-mod_storage.lua) files are Minetest-specific.
For background information and project roadmap, see the wiki.
To interact with the interpreter on Unix systems in CLI mode, install lua or luajit and execute the following command in this directory:
$ lua
> dofile("modpol.lua")
For a list of global functions and tables, use modpol.menu()
.
To use this in Minetest, simply install it as a Minetest mod. Minetest will load init.lua. See the source code for information about chat commands which can then be used.
Use the /menu
command to see a list of registered chat commands.
By default, a data directory named "data" will be created in this directory. "/data" will contain a log file and serialized program data files.
Another storage method may be chosen in modpol.lua. A StorageRef-based method for Minetest 5.* is included: storage-mod_storage.lua.
To separate the Modular Politics core from the Minetest mod, simply remove these files:
mod.conf
init.lua
description.txt
depends.txt
/storage/storage-mod_storage.lua
/modpol_minetest/
Eventually the stand-alone modpol package will be published as a separate repo.
Initiated by Nathan Schneider of the Media Enterprise Design Lab at the University of Colorado Boulder, as part of the Metagovernance Project. Based on the paper "Modular Politics: Toward a Governance Layer for Online Communities."
Thanks to contributors:
We'd love to welcome more contributors, particularly from the Minetest community! Please join the conversation in the Issues or the Minetest.net forum.