Updated documentation

This commit is contained in:
Nathan Schneider 2021-12-19 16:42:34 -07:00
parent 53d2a25f42
commit a59ad22370
2 changed files with 24 additions and 12 deletions

View File

@ -1,10 +1,16 @@
# Modular Politics for Minetest
This is a mod for [Minetest](https://minetest.net) that enables diverse governance mechanisms. It seeks to implement the [Modular Politics](https://metagov.org/modpol) proposal. In the future, it will be possible to use this framework to simulate governance in a number of platform contexts.
Modular Politics is an extension that enables diverse governance processes on multi-user platforms. It seeks to implement a theoretical framework, also called [Modular Politics](https://metagov.org/modpol), which proposes these design goals:
This mod produces an API that can serve as a dependency for other mods that add specific governance functionalities.
* *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.
Modular Politics produces a library that enables users to create or adapt their own modules that add specific governance functionalities.
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.
For background information, documentation, and the project roadmap, see [the wiki](https://gitlab.com/medlabboulder/modpol/-/wikis/home).
## Installation in Minetest
@ -52,9 +58,15 @@ Other contributors include:
* Robert Kiraly [[OldCoder](https://github.com/oldcoder/)] (ocutils.lua, storage-local.lua, project refactoring)
* Skylar Hew (documentation)
We'd love to welcome more contributors, particularly from the Minetest community! Please join the conversation in the [Issues](https://gitlab.com/medlabboulder/modpol/-/issues) or the [Minetest.net forum](https://forum.minetest.net/viewtopic.php?f=47&t=26037).
We are grateful for initial support for this project from a residency with [The Bentway Conservancy](https://www.thebentway.ca/). Read about us in _[The Field Guide to Digital and/as Public Space](https://www.thebentway.ca/stories/field-guide/)_.
## Contributing
We'd love to welcome more contributors. Please join the conversation in the [Issues](https://gitlab.com/medlabboulder/modpol/-/issues), our [Matrix.org channel](https://matrix.to/#/#minetest-modpol:matrix.org), and the [Minetest.net forum](https://forum.minetest.net/viewtopic.php?f=47&t=26037).
Learn more about the project and how to develop your own modules in [the wiki](https://gitlab.com/medlabboulder/modpol/-/wikis/home).
We are grateful for support for this project from a residency with [The Bentway Conservancy](https://www.thebentway.ca/).
## Licenses

View File

@ -1,12 +1,12 @@
--- change_modules
-- @module change_modules
--- module_template
-- @module module_template
--- (Required): data table containing name and description of the module
-- @field name "Human-readable name"
-- @field slug "Same as module class name"
-- @field desc "Description of the module"
-- @field hide "Whether this is a hidden utility module"
local change_modules = {
local module_template = {
name = "Module Human-Readable Name",
slug = "template",
desc = "Description of the module",
@ -16,7 +16,7 @@ local change_modules = {
--- (Required) Data for module
-- Variables that module uses during the course of a process
-- Can be blank
change_modules.data = {
module_template.data = {
}
--- (Required): config for module
@ -27,7 +27,7 @@ change_modules.data = {
-- Default values set in config can be overridden
-- @field field_1 ex: votes_required, default = 5
-- @field field_2 ex: voting_type, default = "majority"
change_modules.config = {
module_template.config = {
field_1 = 5
field_2 = "majority"
}
@ -39,7 +39,7 @@ change_modules.config = {
-- <li><code>self.id</code> (the process id of the module instance)</li>
-- @param result (optional) Callback if this module is embedded in other modules
-- @function initiate
function change_modules:initiate(result)
function module_template:initiate(result)
-- call interaction functions here!
-- concluding functions:
@ -51,4 +51,4 @@ function change_modules:initiate(result)
end
--- (Required) Add to module table
modpol.modules.change_modules = change_modules
modpol.modules.module_template = module_template