diff --git a/README.md b/README.md index 640d943..05c4adf 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/modpol_core/modules/template.lua b/modpol_core/modules/template.lua index ec20f7e..91773e7 100644 --- a/modpol_core/modules/template.lua +++ b/modpol_core/modules/template.lua @@ -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 = { --
self.id (the process id of the module instance)