diff --git a/README.md b/README.md index 2e9cc95..d30226e 100644 --- a/README.md +++ b/README.md @@ -4,22 +4,18 @@ Modular Politics is an extension that enables diverse governance processes on mu This implementation is a mod for [Minetest](https://minetest.net), a free/open-source voxel game. It is designed to be easily adapted to other multi-user platforms that also employ Lua as an extension language. -## Design philosophy +## How to use it -Modular Politics seeks to implement a theoretical framework, also called "[modular politics](https://metagov.org/modpol)," which proposes these design goals: +Modular Politics is built around groups called *orgs*. At the base is an org with all users in it, called `root` by default. -* *Modularity*: Platform operators and community members should have the ability to construct systems by creating, importing, and arranging composable parts together as a coherent whole. -* *Expressiveness*: The governance layer should be able to implement as wide a range of processes as possible. -* *Portability*: Governance tools developed for one platform should be portable to another platform for reuse and adaptation. -* *Interoperability*: Governance systems operating on different platforms and protocols should have the ability to interact with each other, sharing data and influencing each other's processes. +*Modules* enable people to do things within orgs, such as decide on membership, grant powers to the org, and much more. Modules can be added and modified by users to meet their needs. Modules can also be nested in each other, so one module can rely on another module to accomplish a process. Within an org, choose the module that you want to use: -Additionally, Modular Politics seeks to counteract the tendency for "[implicit feudalism](https://ntnsndr.in/ImplicitFeudalism)," according to which rigid, top-down power structures are the norm in online spaces. To this end, some design patterns include: +![](lib/module_list.png) -* *Groups, not roles*: While most platforms assign powers through particular permissions given to individuals, in Modular Politics, power lies in groups (which Modular Politics calls "orgs"). -* *Consent, not oligarchy*: Rather than assuming that decisions will be made by a few power-holders, the software assumes that consent by all affected users is the norm. -* *Inheritance, not blank slates*: When a new group is formed, it inherits the patterns of what preceded it, rather than imagining that it is starting from scratch. +Modules might simply carry out actions in the game, or they might require a group decision to do so. They might also change the modules available to users of a given org. + +The point is that Modular Politics gives you the ability to do whatever kind of politics you want with your modules. -It is certainly possible to use Modular Politics to replicate practices of implicit feudalism, such as all-powerful admins, but doing so requires extra work to overcome these defaults. ## Installation in Minetest @@ -27,7 +23,7 @@ To use this in Minetest, simply install it in your `mods/` or `worldmods/` folde In the game, open the Modular Politics dashboard with the command `/mp`. -For testing purposes, players with the `privs` privilege (generally admins) can use the `/mp` command, which resets all the orgs and opens a dashboard. +For testing purposes, players with the `privs` privilege (generally admins) can use the `/mp` command, which resets all the orgs and opens a dashboard.\ ## Standalone Version on the Command Line @@ -55,6 +51,23 @@ By default, a data directory named "data" will be created in this director Another storage method may be chosen in `modpol.lua`. A StorageRef-based method for Minetest 5.* is included: `storage-mod_storage.lua`. +## Design philosophy + +Modular Politics seeks to implement a theoretical framework, also called "[modular politics](https://metagov.org/modpol)," which proposes these design goals: + +* *Modularity*: Platform operators and community members should have the ability to construct systems by creating, importing, and arranging composable parts together as a coherent whole. +* *Expressiveness*: The governance layer should be able to implement as wide a range of processes as possible. +* *Portability*: Governance tools developed for one platform should be portable to another platform for reuse and adaptation. +* *Interoperability*: Governance systems operating on different platforms and protocols should have the ability to interact with each other, sharing data and influencing each other's processes. + +Additionally, Modular Politics seeks to counteract the tendency for "[implicit feudalism](https://ntnsndr.in/ImplicitFeudalism)," according to which rigid, top-down power structures are the norm in online spaces. To this end, some design patterns include: + +* *Groups, not roles*: While most platforms assign powers through particular permissions given to individuals, in Modular Politics, power lies in groups (which Modular Politics calls "orgs"). +* *Consent, not oligarchy*: Rather than assuming that decisions will be made by a few power-holders, the software assumes that consent by all affected users is the norm. +* *Inheritance, not blank slates*: When a new group is formed, it inherits the patterns of what preceded it, rather than imagining that it is starting from scratch. + +It is certainly possible to use Modular Politics to replicate practices of implicit feudalism, such as all-powerful admins, but doing so requires extra work to overcome these defaults. + ## Credits diff --git a/lib/module_list.png b/lib/module_list.png new file mode 100644 index 0000000..c41c75b Binary files /dev/null and b/lib/module_list.png differ