Updated documentation
This commit is contained in:
22
README.md
22
README.md
@ -1,10 +1,16 @@
|
|||||||
# Modular Politics for Minetest
|
# 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
|
## Installation in Minetest
|
||||||
|
|
||||||
@ -52,9 +58,15 @@ Other contributors include:
|
|||||||
* Robert Kiraly [[OldCoder](https://github.com/oldcoder/)] (ocutils.lua, storage-local.lua, project refactoring)
|
* Robert Kiraly [[OldCoder](https://github.com/oldcoder/)] (ocutils.lua, storage-local.lua, project refactoring)
|
||||||
* Skylar Hew (documentation)
|
* 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
|
## Licenses
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
--- change_modules
|
--- module_template
|
||||||
-- @module change_modules
|
-- @module module_template
|
||||||
|
|
||||||
--- (Required): data table containing name and description of the module
|
--- (Required): data table containing name and description of the module
|
||||||
-- @field name "Human-readable name"
|
-- @field name "Human-readable name"
|
||||||
-- @field slug "Same as module class name"
|
-- @field slug "Same as module class name"
|
||||||
-- @field desc "Description of the module"
|
-- @field desc "Description of the module"
|
||||||
-- @field hide "Whether this is a hidden utility module"
|
-- @field hide "Whether this is a hidden utility module"
|
||||||
local change_modules = {
|
local module_template = {
|
||||||
name = "Module Human-Readable Name",
|
name = "Module Human-Readable Name",
|
||||||
slug = "template",
|
slug = "template",
|
||||||
desc = "Description of the module",
|
desc = "Description of the module",
|
||||||
@ -16,7 +16,7 @@ local change_modules = {
|
|||||||
--- (Required) Data for module
|
--- (Required) Data for module
|
||||||
-- Variables that module uses during the course of a process
|
-- Variables that module uses during the course of a process
|
||||||
-- Can be blank
|
-- Can be blank
|
||||||
change_modules.data = {
|
module_template.data = {
|
||||||
}
|
}
|
||||||
|
|
||||||
--- (Required): config for module
|
--- (Required): config for module
|
||||||
@ -27,7 +27,7 @@ change_modules.data = {
|
|||||||
-- Default values set in config can be overridden
|
-- Default values set in config can be overridden
|
||||||
-- @field field_1 ex: votes_required, default = 5
|
-- @field field_1 ex: votes_required, default = 5
|
||||||
-- @field field_2 ex: voting_type, default = "majority"
|
-- @field field_2 ex: voting_type, default = "majority"
|
||||||
change_modules.config = {
|
module_template.config = {
|
||||||
field_1 = 5
|
field_1 = 5
|
||||||
field_2 = "majority"
|
field_2 = "majority"
|
||||||
}
|
}
|
||||||
@ -39,7 +39,7 @@ change_modules.config = {
|
|||||||
-- <li><code>self.id</code> (the process id of the module instance)</li>
|
-- <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
|
-- @param result (optional) Callback if this module is embedded in other modules
|
||||||
-- @function initiate
|
-- @function initiate
|
||||||
function change_modules:initiate(result)
|
function module_template:initiate(result)
|
||||||
-- call interaction functions here!
|
-- call interaction functions here!
|
||||||
|
|
||||||
-- concluding functions:
|
-- concluding functions:
|
||||||
@ -51,4 +51,4 @@ function change_modules:initiate(result)
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- (Required) Add to module table
|
--- (Required) Add to module table
|
||||||
modpol.modules.change_modules = change_modules
|
modpol.modules.module_template = module_template
|
||||||
|
Reference in New Issue
Block a user