Browse Source

Merge branch 'DocComments' into 'master'

Doc comments

See merge request medlabboulder/modpol!34
Nathan Schneider 2 years ago
parent
commit
cdb8e44099
60 changed files with 5733 additions and 195 deletions
  1. 12 0
      README.md
  2. 2 0
      docs/config.ld
  3. 201 0
      docs/doc/index.html
  4. 303 0
      docs/doc/ldoc.css
  5. 145 0
      docs/doc/modules/add_child_org_consent.html
  6. 128 0
      docs/doc/modules/change_modules.html
  7. 150 0
      docs/doc/modules/consent.html
  8. 127 0
      docs/doc/modules/create_token.html
  9. 190 0
      docs/doc/modules/defer_consent.html
  10. 126 0
      docs/doc/modules/display_processes.html
  11. 126 0
      docs/doc/modules/join_org.html
  12. 146 0
      docs/doc/modules/join_org_consent.html
  13. 126 0
      docs/doc/modules/leave_org.html
  14. 126 0
      docs/doc/modules/message_org.html
  15. 434 0
      docs/doc/modules/modpol.interactions.html
  16. 476 0
      docs/doc/modules/modpol.orgs.base.html
  17. 349 0
      docs/doc/modules/modpol.orgs.process.html
  18. 160 0
      docs/doc/modules/modpol.util.misc.html
  19. 91 0
      docs/doc/modules/modpol_minetest.api.html
  20. 93 0
      docs/doc/modules/modpol_minetest.overrides.interactions.html
  21. 223 0
      docs/doc/modules/module_template.html
  22. 127 0
      docs/doc/modules/priv_to_org.html
  23. 144 0
      docs/doc/modules/randomizer.html
  24. 146 0
      docs/doc/modules/remove_child_consent.html
  25. 144 0
      docs/doc/modules/remove_member_consent.html
  26. 126 0
      docs/doc/modules/remove_org.html
  27. 146 0
      docs/doc/modules/remove_org_consent.html
  28. 126 0
      docs/doc/modules/remove_process.html
  29. 146 0
      docs/doc/modules/rename_org_consent.html
  30. 157 0
      docs/doc/modules/send_token.html
  31. 357 0
      docs/doc/modules/tokenomics.html
  32. 63 0
      docs/headers_template.html
  33. 51 38
      modpol_core/interactions/interactions.lua
  34. 7 4
      modpol_core/modules/add_child_org_consent.lua
  35. 12 3
      modpol_core/modules/change_modules-dropdown.lua
  36. 5 2
      modpol_core/modules/change_modules.lua
  37. 8 2
      modpol_core/modules/consent.lua
  38. 5 9
      modpol_core/modules/create_token.lua
  39. 5 13
      modpol_core/modules/defer_consent.lua
  40. 4 8
      modpol_core/modules/display_processes.lua
  41. 5 0
      modpol_core/modules/join_org.lua
  42. 7 1
      modpol_core/modules/join_org_consent.lua
  43. 4 6
      modpol_core/modules/leave_org.lua
  44. 3 2
      modpol_core/modules/message_org.lua
  45. 7 3
      modpol_core/modules/randomizer.lua
  46. 8 2
      modpol_core/modules/remove_child_consent.lua
  47. 6 2
      modpol_core/modules/remove_member_consent.lua
  48. 5 6
      modpol_core/modules/remove_org.lua
  49. 6 0
      modpol_core/modules/remove_org_consent.lua
  50. 4 9
      modpol_core/modules/remove_process.lua
  51. 6 0
      modpol_core/modules/rename_org_consent.lua
  52. 5 6
      modpol_core/modules/send_token.lua
  53. 8 7
      modpol_core/modules/template.lua
  54. 32 14
      modpol_core/modules/tokenomics.lua
  55. 56 40
      modpol_core/orgs/base.lua
  56. 38 1
      modpol_core/orgs/process.lua
  57. 11 6
      modpol_core/util/misc.lua
  58. 4 5
      modpol_minetest/modules/priv_to_org.lua
  59. 1 2
      modpol_minetest/overrides/interactions.lua
  60. 4 4
      modpol_minetest/overrides/users.lua

+ 12 - 0
README.md

@@ -72,6 +72,18 @@ Additionally, Modpol seeks to counteract the tendency for "[implicit feudalism](
 
 It is certainly possible to use Modpol to replicate practices of implicit feudalism, such as all-powerful admins, but doing so requires extra work to overcome these defaults.
 
+## Documentation
+
+Various guides are available at the [GitLab wiki](https://gitlab.com/medlabboulder/modpol/-/wikis/home).
+
+Read documentation of functions and modules at `docs/doc/index.html`. Documentation was generated using [LDoc](https://stevedonovan.github.io/ldoc/). To generate basic documentation for every page, download `ldoc` and use the following command:
+
+```
+$ cd docs/
+$ ldoc ..
+```
+
+This will not generate the same index page and sidebar as the documentation provided; the appropriate structure needs to be added manually.
 
 ## Credits
 

+ 2 - 0
docs/config.ld

@@ -0,0 +1,2 @@
+project = 'Modpol'
+description = 'modpol core'

+ 201 - 0
docs/doc/index.html

@@ -0,0 +1,201 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="modules/change_modules.html">change_modules</a></li>
+  <li><a href="modules/change_modules.html">change_modules</a></li>
+  <li><a href="modules/consent.html">consent</a></li>
+  <li><a href="modules/create_token.html">create_token</a></li>
+  <li><a href="modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="modules/display_processes.html">display_processes</a></li>
+  <li><a href="modules/join_org.html">join_org</a></li>
+  <li><a href="modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="modules/leave_org.html">leave_org</a></li>
+  <li><a href="modules/message_org.html">message_org</a></li>
+  <li><a href="modules/randomizer.html">randomizer</a></li>
+  <li><a href="modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="modules/remove_org.html">remove_org</a></li>
+  <li><a href="modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="modules/remove_process.html">remove_process</a></li>
+  <li><a href="modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="modules/send_token.html">send_token</a></li>
+  <li><a href="modules/module_template.html">module_template</a></li>
+  <li><a href="modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+
+  <h2>modpol core</h2>
+
+<h2>Modules</h2>
+<table class="module_list">
+	<tr>
+		<td class="name"  nowrap><a href="modules/modpol.interactions.html">modpol.interactions</a></td>
+		<td class="summary">INTERACTIONS.LUA (CLI).</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/add_child_org_consent.html">add_child_org_consent</a></td>
+		<td class="summary">Adds a child org.</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/change_modules.html">change_modules</a></td>
+		<td class="summary">change_modules</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/change_modules.html">change_modules</a></td>
+		<td class="summary">change_modules
+ Depends on consent</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/consent.html">consent</a></td>
+		<td class="summary">A utility module for checking consent</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/create_token.html">create_token</a></td>
+		<td class="summary">Create token.</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/defer_consent.html">defer_consent</a></td>
+		<td class="summary">Defer consent</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/display_processes.html">display_processes</a></td>
+		<td class="summary">Display processes</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/join_org.html">join_org</a></td>
+		<td class="summary">Adds a user to org</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/join_org_consent.html">join_org_consent</a></td>
+		<td class="summary">Join org (consent).</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/leave_org.html">leave_org</a></td>
+		<td class="summary">Removes initiator from org</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/message_org.html">message_org</a></td>
+		<td class="summary">Messages all org members</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/randomizer.html">randomizer</a></td>
+		<td class="summary">A utility module that outputs a random result from a set of options</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/remove_child_consent.html">remove_child_consent</a></td>
+		<td class="summary">Remove child (consent).</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/remove_member_consent.html">remove_member_consent</a></td>
+		<td class="summary">Calls consent to remove member from org</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/remove_org.html">remove_org</a></td>
+		<td class="summary">A simple module that removes an org.</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/remove_org_consent.html">remove_org_consent</a></td>
+		<td class="summary">Remove org (consent)
+ A simple module that calls a consent process on an org to remove it.</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/remove_process.html">remove_process</a></td>
+		<td class="summary">Remove a process</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/rename_org_consent.html">rename_org_consent</a></td>
+		<td class="summary">Rename org (consent)
+ A simple module that calls a consent process on an org to rename it.</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/send_token.html">send_token</a></td>
+		<td class="summary">Send token.</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/module_template.html">module_template</a></td>
+		<td class="summary">Template for module writers.</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/tokenomics.html">tokenomics</a></td>
+		<td class="summary">Tokenomics.</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/modpol.orgs.base.html">modpol.orgs.base</a></td>
+		<td class="summary">Basic function for orgs</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/modpol.orgs.process.html">modpol.orgs.process</a></td>
+		<td class="summary">Process functions for orgs</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/modpol.util.misc.html">modpol.util.misc</a></td>
+		<td class="summary">Miscellaneous functions</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/modpol_minetest.api.html">modpol_minetest.api</a></td>
+		<td class="summary">Script for loading Minetest files</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/priv_to_org.html">priv_to_org</a></td>
+		<td class="summary">Set privilege to org members
+ Allows initiator to grant a priv they have to all members of an org</td>
+	</tr>
+	<tr>
+		<td class="name"  nowrap><a href="modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></td>
+		<td class="summary">INTERACTIONS.LUA (for Minetest)
+ CONTEXTUAL STUFF
+ ================</td>
+	</tr>
+</table>
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 303 - 0
docs/doc/ldoc.css

@@ -0,0 +1,303 @@
+/* BEGIN RESET
+
+Copyright (c) 2010, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.com/yui/license.html
+version: 2.8.2r1
+*/
+html {
+    color: #000;
+    background: #FFF;
+}
+body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td {
+    margin: 0;
+    padding: 0;
+}
+table {
+    border-collapse: collapse;
+    border-spacing: 0;
+}
+fieldset,img {
+    border: 0;
+}
+address,caption,cite,code,dfn,em,strong,th,var,optgroup {
+    font-style: inherit;
+    font-weight: inherit;
+}
+del,ins {
+    text-decoration: none;
+}
+li {
+    margin-left: 20px;
+}
+caption,th {
+    text-align: left;
+}
+h1,h2,h3,h4,h5,h6 {
+    font-size: 100%;
+    font-weight: bold;
+}
+q:before,q:after {
+    content: '';
+}
+abbr,acronym {
+    border: 0;
+    font-variant: normal;
+}
+sup {
+    vertical-align: baseline;
+}
+sub {
+    vertical-align: baseline;
+}
+legend {
+    color: #000;
+}
+input,button,textarea,select,optgroup,option {
+    font-family: inherit;
+    font-size: inherit;
+    font-style: inherit;
+    font-weight: inherit;
+}
+input,button,textarea,select {*font-size:100%;
+}
+/* END RESET */
+
+body {
+    margin-left: 1em;
+    margin-right: 1em;
+    font-family: arial, helvetica, geneva, sans-serif;
+    background-color: #ffffff; margin: 0px;
+}
+
+code, tt { font-family: monospace; font-size: 1.1em; }
+span.parameter { font-family:monospace; }
+span.parameter:after { content:":"; }
+span.types:before { content:"("; }
+span.types:after { content:")"; }
+.type { font-weight: bold; font-style:italic }
+
+body, p, td, th { font-size: .95em; line-height: 1.2em;}
+
+p, ul { margin: 10px 0 0 0px;}
+
+strong { font-weight: bold;}
+
+em { font-style: italic;}
+
+h1 {
+    font-size: 1.5em;
+    margin: 20px 0 20px 0;
+}
+h2, h3, h4 { margin: 15px 0 10px 0; }
+h2 { font-size: 1.25em; }
+h3 { font-size: 1.15em; }
+h4 { font-size: 1.06em; }
+
+a:link { font-weight: bold; color: #004080; text-decoration: none; }
+a:visited { font-weight: bold; color: #006699; text-decoration: none; }
+a:link:hover { text-decoration: underline; }
+
+hr {
+    color:#cccccc;
+    background: #00007f;
+    height: 1px;
+}
+
+blockquote { margin-left: 3em; }
+
+ul { list-style-type: disc; }
+
+p.name {
+    font-family: "Andale Mono", monospace;
+    padding-top: 1em;
+}
+
+pre {
+    background-color: rgb(245, 245, 245);
+    border: 1px solid #C0C0C0; /* silver */
+    padding: 10px;
+    margin: 10px 0 10px 0;
+    overflow: auto;
+    font-family: "Andale Mono", monospace;
+}
+
+pre.example {
+    font-size: .85em;
+}
+
+table.index { border: 1px #00007f; }
+table.index td { text-align: left; vertical-align: top; }
+
+#container {
+    margin-left: 1em;
+    margin-right: 1em;
+    background-color: #f0f0f0;
+}
+
+#product {
+    text-align: center;
+    border-bottom: 1px solid #cccccc;
+    background-color: #ffffff;
+}
+
+#product big {
+    font-size: 2em;
+}
+
+#main {
+    background-color: #f0f0f0;
+    border-left: 2px solid #cccccc;
+}
+
+#navigation {
+    float: left;
+    width: 14em;
+    vertical-align: top;
+    background-color: #f0f0f0;
+    overflow: visible;
+}
+
+#navigation h2 {
+    background-color:#e7e7e7;
+    font-size:1.1em;
+    color:#000000;
+    text-align: left;
+    padding:0.2em;
+    border-top:1px solid #dddddd;
+    border-bottom:1px solid #dddddd;
+}
+
+#navigation ul
+{
+    font-size:1em;
+    list-style-type: none;
+    margin: 1px 1px 10px 1px;
+}
+
+#navigation li {
+    text-indent: -1em;
+    display: block;
+    margin: 3px 0px 0px 22px;
+}
+
+#navigation li li a {
+    margin: 0px 3px 0px -1em;
+}
+
+#content {
+    margin-left: 14em;
+    padding: 1em;
+    width: 700px;
+    border-left: 2px solid #cccccc;
+    border-right: 2px solid #cccccc;
+    background-color: #ffffff;
+}
+
+#about {
+    clear: both;
+    padding: 5px;
+    border-top: 2px solid #cccccc;
+    background-color: #ffffff;
+}
+
+@media print {
+    body {
+        font: 12pt "Times New Roman", "TimeNR", Times, serif;
+    }
+    a { font-weight: bold; color: #004080; text-decoration: underline; }
+
+    #main {
+        background-color: #ffffff;
+        border-left: 0px;
+    }
+
+    #container {
+        margin-left: 2%;
+        margin-right: 2%;
+        background-color: #ffffff;
+    }
+
+    #content {
+        padding: 1em;
+        background-color: #ffffff;
+    }
+
+    #navigation {
+        display: none;
+    }
+    pre.example {
+        font-family: "Andale Mono", monospace;
+        font-size: 10pt;
+        page-break-inside: avoid;
+    }
+}
+
+table.module_list {
+    border-width: 1px;
+    border-style: solid;
+    border-color: #cccccc;
+    border-collapse: collapse;
+}
+table.module_list td {
+    border-width: 1px;
+    padding: 3px;
+    border-style: solid;
+    border-color: #cccccc;
+}
+table.module_list td.name { background-color: #f0f0f0; min-width: 200px; }
+table.module_list td.summary { width: 100%; }
+
+
+table.function_list {
+    border-width: 1px;
+    border-style: solid;
+    border-color: #cccccc;
+    border-collapse: collapse;
+}
+table.function_list td {
+    border-width: 1px;
+    padding: 3px;
+    border-style: solid;
+    border-color: #cccccc;
+}
+table.function_list td.name { background-color: #f0f0f0; min-width: 200px; }
+table.function_list td.summary { width: 100%; }
+
+ul.nowrap {
+    overflow:auto;
+    white-space:nowrap;
+}
+
+dl.table dt, dl.function dt {border-top: 1px solid #ccc; padding-top: 1em;}
+dl.table dd, dl.function dd {padding-bottom: 1em; margin: 10px 0 0 20px;}
+dl.table h3, dl.function h3 {font-size: .95em;}
+
+/* stop sublists from having initial vertical space */
+ul ul { margin-top: 0px; }
+ol ul { margin-top: 0px; }
+ol ol { margin-top: 0px; }
+ul ol { margin-top: 0px; }
+
+/* make the target distinct; helps when we're navigating to a function */
+a:target + * {
+  background-color: #FF9;
+}
+
+
+/* styles for prettification of source */
+pre .comment { color: #558817; }
+pre .constant { color: #a8660d; }
+pre .escape { color: #844631; }
+pre .keyword { color: #aa5050; font-weight: bold; }
+pre .library { color: #0e7c6b; }
+pre .marker { color: #512b1e; background: #fedc56; font-weight: bold; }
+pre .string { color: #8080ff; }
+pre .number { color: #f8660d; }
+pre .operator { color: #2239a8; font-weight: bold; }
+pre .preprocessor, pre .prepro { color: #a33243; }
+pre .global { color: #800080; }
+pre .user-keyword { color: #800080; }
+pre .prompt { color: #558817; }
+pre .url { color: #272fc2; text-decoration: underline; }
+

+ 145 - 0
docs/doc/modules/add_child_org_consent.html

@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><strong>add_child_org_consent</strong></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>add_child_org_consent</code></h1>
+<p>Adds a child org.</p>
+<p>
+ Depends on `consent`</p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Initiate consent for new child org</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#create_child_org">create_child_org ()</a></td>
+	<td class="summary">Create a new child orgg</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Initiate consent for new child org
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "create_child_org"></a>
+    <strong>create_child_org ()</strong>
+    </dt>
+    <dd>
+    Create a new child orgg
+
+
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 128 - 0
docs/doc/modules/change_modules.html

@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><strong>change_modules</strong></li>
+  <li><strong>change_modules</strong></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>change_modules</code></h1>
+<p>change_modules
+ Depends on consent</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Initiate change in modules.</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Initiate change in modules.
+ Either adds or removes module depending on user input
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 150 - 0
docs/doc/modules/consent.html

@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><strong>consent</strong></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>consent</code></h1>
+<p>A utility module for checking consent</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Initiate consent</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#callback">callback (member)</a></td>
+	<td class="summary">Callback</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Initiate consent
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "callback"></a>
+    <strong>callback (member)</strong>
+    </dt>
+    <dd>
+    Callback
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">member</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 127 - 0
docs/doc/modules/create_token.html

@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><strong>create_token</strong></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>create_token</code></h1>
+<p>Create token.</p>
+<p>
+ Depends on tokenomics</p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#create_toke:initiate">create_toke:initiate (result)</a></td>
+	<td class="summary">Initiate function</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "create_toke:initiate"></a>
+    <strong>create_toke:initiate (result)</strong>
+    </dt>
+    <dd>
+    Initiate function
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 190 - 0
docs/doc/modules/defer_consent.html

@@ -0,0 +1,190 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+<li><a href="#Tables">Tables</a></li>
+<li><a href="#Fields">Fields</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><strong>defer_consent</strong></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>defer_consent</code></h1>
+<p>Defer consent</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Initiate function</td>
+	</tr>
+</table>
+<h2><a href="#Tables">Tables</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#config">config</a></td>
+	<td class="summary">Config for module</td>
+	</tr>
+</table>
+<h2><a href="#Fields">Fields</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#modpol.modules.defer_consent">modpol.modules.defer_consent</a></td>
+	<td class="summary">(Required) Add to module table</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Initiate function
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header "><a name="Tables"></a>Tables</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "config"></a>
+    <strong>config</strong>
+    </dt>
+    <dd>
+    Config for module
+
+
+    <h3>Fields:</h3>
+    <ul>
+        <li><span class="parameter">defer_org</span>
+         Name or ID of target org
+        </li>
+        <li><span class="parameter">votes_required</span>
+         Threshold passed on to `consent`
+        </li>
+        <li><span class="parameter">prompt</span>
+         String passed on to `consent`
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header "><a name="Fields"></a>Fields</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "modpol.modules.defer_consent"></a>
+    <strong>modpol.modules.defer_consent</strong>
+    </dt>
+    <dd>
+    (Required) Add to module table
+
+
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 126 - 0
docs/doc/modules/display_processes.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><strong>display_processes</strong></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>display_processes</code></h1>
+<p>Display processes</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Initiate function</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Initiate function
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 126 - 0
docs/doc/modules/join_org.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><strong>join_org</strong></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>join_org</code></h1>
+<p>Adds a user to org</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Adds the user to the org</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Adds the user to the org
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 146 - 0
docs/doc/modules/join_org_consent.html

@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><strong>join_org_consent</strong></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>join_org_consent</code></h1>
+<p>Join org (consent).</p>
+<p>
+ A simple module that calls a consent process on an org to add a member.
+ Depends on the Consent module.</p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Initiate join org with consent</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#complete">complete ()</a></td>
+	<td class="summary">Adds member to org, notifies org, and deletes process</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Initiate join org with consent
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "complete"></a>
+    <strong>complete ()</strong>
+    </dt>
+    <dd>
+    Adds member to org, notifies org, and deletes process
+
+
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 126 - 0
docs/doc/modules/leave_org.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><strong>leave_org</strong></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>leave_org</code></h1>
+<p>Removes initiator from org</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Removes user from org</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Removes user from org
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 126 - 0
docs/doc/modules/message_org.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><strong>message_org</strong></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>message_org</code></h1>
+<p>Messages all org members</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Allows user to send input message to all org members</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Allows user to send input message to all org members
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 434 - 0
docs/doc/modules/modpol.interactions.html

@@ -0,0 +1,434 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><strong>modpol.interactions</strong></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>modpol.interactions</code></h1>
+<p>INTERACTIONS.LUA (CLI).</p>
+<p>
+ User interaction functions for Modular Politics
+ Called by modpol.lua</p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#modpol.interactions.dashboard">modpol.interactions.dashboard (user)</a></td>
+	<td class="summary">Output: Display a menu of commands to the user</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.interactions.org_dashboard">modpol.interactions.org_dashboard (user, org_string)</a></td>
+	<td class="summary">Output: Displays a menu of org-specific commands to the user</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.interactions.user_dashboard">modpol.interactions.user_dashboard (viewer, user, completion)</a></td>
+	<td class="summary">Function: modpol.interactions.user_dashboard
+ Displays a dashboard about a particular user</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.interactions.message">modpol.interactions.message (user, message)</a></td>
+	<td class="summary">Prints message to CLI.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.interactions.message_user">modpol.interactions.message_user (sender, recipient)</a></td>
+	<td class="summary">Gets and sends a message from one user to another</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.interactions.display">modpol.interactions.display (user, title, message, done)</a></td>
+	<td class="summary">Displays complex data to a user</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.interactions.text_query">modpol.interactions.text_query (User, Query, func)</a></td>
+	<td class="summary">Applies "func" to user input.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.interactions.dropdown_query">modpol.interactions.dropdown_query (user, label, options, func)</a></td>
+	<td class="summary">Output: Calls func on choice.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.interactions.checkbox_query">modpol.interactions.checkbox_query (user, label, options, func)</a></td>
+	<td class="summary">Allows user to select from a set of options</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.interactions.binary_poll_user">modpol.interactions.binary_poll_user (user, question, func)</a></td>
+	<td class="summary">Output: Applies "func" to user input.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.interactions.message_org">modpol.interactions.message_org (initiator, org, message)</a></td>
+	<td class="summary">Output: broadcasts message to all org members</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "modpol.interactions.dashboard"></a>
+    <strong>modpol.interactions.dashboard (user)</strong>
+    </dt>
+    <dd>
+    Output: Display a menu of commands to the user
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+         (string)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.interactions.org_dashboard"></a>
+    <strong>modpol.interactions.org_dashboard (user, org_string)</strong>
+    </dt>
+    <dd>
+    Output: Displays a menu of org-specific commands to the user
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+         (string)
+        </li>
+        <li><span class="parameter">org_string</span>
+         (string or id)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.interactions.user_dashboard"></a>
+    <strong>modpol.interactions.user_dashboard (viewer, user, completion)</strong>
+    </dt>
+    <dd>
+    Function: modpol.interactions.user_dashboard
+ Displays a dashboard about a particular user
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">viewer</span>
+         Name of user viewing the dashboard (string)
+        </li>
+        <li><span class="parameter">user</span>
+         Name of user being viewed (string)
+        </li>
+        <li><span class="parameter">completion</span>
+         Optional function to call on Done button
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.interactions.message"></a>
+    <strong>modpol.interactions.message (user, message)</strong>
+    </dt>
+    <dd>
+    Prints message to CLI.
+ Buttons: message, done
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+         (string)
+        </li>
+        <li><span class="parameter">message</span>
+         (string)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.interactions.message_user"></a>
+    <strong>modpol.interactions.message_user (sender, recipient)</strong>
+    </dt>
+    <dd>
+    Gets and sends a message from one user to another
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">sender</span>
+         Name of user sending (string)
+        </li>
+        <li><span class="parameter">recipient</span>
+         Name of user receiving (string)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.interactions.display"></a>
+    <strong>modpol.interactions.display (user, title, message, done)</strong>
+    </dt>
+    <dd>
+    Displays complex data to a user
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+         Name of target user (string)
+        </li>
+        <li><span class="parameter">title</span>
+         Title of display (string)
+        </li>
+        <li><span class="parameter">message</span>
+         Content of message (string or table of strings)
+        </li>
+        <li><span class="parameter">done</span>
+         Optional function for what happens when user is done
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.interactions.text_query"></a>
+    <strong>modpol.interactions.text_query (User, Query, func)</strong>
+    </dt>
+    <dd>
+    Applies "func" to user input.
+ Func input: user input (string)
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">User</span>
+         (string)
+        </li>
+        <li><span class="parameter">Query</span>
+         (string)
+        </li>
+        <li><span class="parameter">func</span>
+         (function)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.interactions.dropdown_query"></a>
+    <strong>modpol.interactions.dropdown_query (user, label, options, func)</strong>
+    </dt>
+    <dd>
+    Output: Calls func on choice.
+ Func input: choice (string)
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+         (string)
+        </li>
+        <li><span class="parameter">label</span>
+         (string)
+        </li>
+        <li><span class="parameter">options</span>
+         (table of strings)
+        </li>
+        <li><span class="parameter">func</span>
+         (choice) (function)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.interactions.checkbox_query"></a>
+    <strong>modpol.interactions.checkbox_query (user, label, options, func)</strong>
+    </dt>
+    <dd>
+    Allows user to select from a set of options
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+         Name of user (string)
+        </li>
+        <li><span class="parameter">label</span>
+         Query for user before options (string)
+        </li>
+        <li><span class="parameter">options</span>
+         Table of options and their checked status in the form {{"option_1_string", true}, {"option_2_string", false}}
+        </li>
+        <li><span class="parameter">func</span>
+         Function to be called with param "input", made up of the corrected table in the same format as the param options
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.interactions.binary_poll_user"></a>
+    <strong>modpol.interactions.binary_poll_user (user, question, func)</strong>
+    </dt>
+    <dd>
+    Output: Applies "func" to user input.
+ Func input: user input (string: y/n)
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+         (string)
+        </li>
+        <li><span class="parameter">question</span>
+         (string)
+        </li>
+        <li><span class="parameter">func</span>
+         (function)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.interactions.message_org"></a>
+    <strong>modpol.interactions.message_org (initiator, org, message)</strong>
+    </dt>
+    <dd>
+    Output: broadcasts message to all org members
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">initiator</span>
+         (string)
+        </li>
+        <li><span class="parameter">org</span>
+         (number or string)
+        </li>
+        <li><span class="parameter">message</span>
+         (string)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 476 - 0
docs/doc/modules/modpol.orgs.base.html

@@ -0,0 +1,476 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><strong>modpol.orgs.base</strong></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>modpol.orgs.base</code></h1>
+<p>Basic function for orgs</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs.get_org">modpol.orgs.get_org (arg)</a></td>
+	<td class="summary">Return org when given its id or name</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs.list_all">modpol.orgs.list_all ()</a></td>
+	<td class="summary">Return a table list of all org names</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs.user_orgs">modpol.orgs.user_orgs (user)</a></td>
+	<td class="summary">Return the orgs of a user</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs.reset">modpol.orgs.reset ()</a></td>
+	<td class="summary">Deletes all orgs except for the</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs.init_instance">modpol.orgs.init_instance ()</a></td>
+	<td class="summary">Initializes the instance (root org)
+ can only be run once, as only one instance can exist</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:record">modpol.orgs:record ()</a></td>
+	<td class="summary">Records a log message to the modpol ledger</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:add_org">modpol.orgs:add_org (name, user)</a></td>
+	<td class="summary">Adds a new sub org to the org it is called on.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:delete">modpol.orgs:delete ()</a></td>
+	<td class="summary">Recursively deletes an org and its suborgs
+ Leaves entry in modpol.orgs.array as a string "removed".</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:get_member_index">modpol.orgs:get_member_index (member)</a></td>
+	<td class="summary">Internal function to get the index of a member name</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:add_member">modpol.orgs:add_member (user)</a></td>
+	<td class="summary">Adds a user to an org</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:remove_member">modpol.orgs:remove_member (user)</a></td>
+	<td class="summary">Removes a user from an org</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:has_member">modpol.orgs:has_member (user)</a></td>
+	<td class="summary">Boolean check whether user is an org</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:list_members">modpol.orgs:list_members ()</a></td>
+	<td class="summary"></td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:get_member_count">modpol.orgs:get_member_count ()</a></td>
+	<td class="summary">Because member list uses lazy deletion, using #org.members will not show an accurate number</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:set_policy">modpol.orgs:set_policy (policy_type, process_type, must_be_member)</a></td>
+	<td class="summary">Adds a new policy to the policy table.</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "modpol.orgs.get_org"></a>
+    <strong>modpol.orgs.get_org (arg)</strong>
+    </dt>
+    <dd>
+    Return org when given its id or name
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">arg</span>
+         string for name of org or id of org
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        org specified by id or name
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs.list_all"></a>
+    <strong>modpol.orgs.list_all ()</strong>
+    </dt>
+    <dd>
+    Return a table list of all org names
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a table list of all org names
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs.user_orgs"></a>
+    <strong>modpol.orgs.user_orgs (user)</strong>
+    </dt>
+    <dd>
+    Return the orgs of a user
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+         string of user name
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        table of strings of org names
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs.reset"></a>
+    <strong>modpol.orgs.reset ()</strong>
+    </dt>
+    <dd>
+    Deletes all orgs except for the
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs.init_instance"></a>
+    <strong>modpol.orgs.init_instance ()</strong>
+    </dt>
+    <dd>
+    Initializes the instance (root org)
+ can only be run once, as only one instance can exist
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:record"></a>
+    <strong>modpol.orgs:record ()</strong>
+    </dt>
+    <dd>
+    Records a log message to the modpol ledger
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:add_org"></a>
+    <strong>modpol.orgs:add_org (name, user)</strong>
+    </dt>
+    <dd>
+    Adds a new sub org to the org it is called on.
+ Ex: instance:add_org('town hall')
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">name</span>
+         (string) name of new org
+        </li>
+        <li><span class="parameter">user</span>
+         (string)
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        child org created
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:delete"></a>
+    <strong>modpol.orgs:delete ()</strong>
+    </dt>
+    <dd>
+    Recursively deletes an org and its suborgs
+ Leaves entry in modpol.orgs.array as a string "removed".
+ Note: "reason" param was removed, can be added back
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:get_member_index"></a>
+    <strong>modpol.orgs:get_member_index (member)</strong>
+    </dt>
+    <dd>
+    Internal function to get the index of a member name
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">member</span>
+
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        index of given member
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:add_member"></a>
+    <strong>modpol.orgs:add_member (user)</strong>
+    </dt>
+    <dd>
+    Adds a user to an org
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:remove_member"></a>
+    <strong>modpol.orgs:remove_member (user)</strong>
+    </dt>
+    <dd>
+    Removes a user from an org
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:has_member"></a>
+    <strong>modpol.orgs:has_member (user)</strong>
+    </dt>
+    <dd>
+    Boolean check whether user is an org
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        true if user is in org, false if not
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:list_members"></a>
+    <strong>modpol.orgs:list_members ()</strong>
+    </dt>
+    <dd>
+
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        a table of the names (string) of members
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:get_member_count"></a>
+    <strong>modpol.orgs:get_member_count ()</strong>
+    </dt>
+    <dd>
+    Because member list uses lazy deletion, using #org.members will not show an accurate number
+
+
+
+    <h3>Returns:</h3>
+    <ol>
+
+        numbers of members
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:set_policy"></a>
+    <strong>modpol.orgs:set_policy (policy_type, process_type, must_be_member)</strong>
+    </dt>
+    <dd>
+    Adds a new policy to the policy table.
+ Must define the policy type, process associated with it, and whether the request must be made by an org member
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">policy_type</span>
+
+        </li>
+        <li><span class="parameter">process_type</span>
+
+        </li>
+        <li><span class="parameter">must_be_member</span>
+         Boolean
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 349 - 0
docs/doc/modules/modpol.orgs.process.html

@@ -0,0 +1,349 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><strong>modpol.orgs.process</strong></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>modpol.orgs.process</code></h1>
+<p>Process functions for orgs</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs.call_module">modpol.orgs.call_module (module_slug, intiator, config, result)</a></td>
+	<td class="summary">Call modules</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs.get_root_process">modpol.orgs.get_root_process (id)</a></td>
+	<td class="summary">Get the root process of the given id</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs.delete_process">modpol.orgs.delete_process (id)</a></td>
+	<td class="summary">Delete the process given id</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:delete_process_tree">modpol.orgs:delete_process_tree (id)</a></td>
+	<td class="summary">Delete process tree by id</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:add_pending_action">modpol.orgs:add_pending_action (process_id, user, callback)</a></td>
+	<td class="summary">Add a new pending action</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:remove_pending_action">modpol.orgs:remove_pending_action (process_id, user)</a></td>
+	<td class="summary">Remove a pending action</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:wipe_pending_actions">modpol.orgs:wipe_pending_actions (process_id)</a></td>
+	<td class="summary">Wipe all pending actions for process</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:has_pending_actions">modpol.orgs:has_pending_actions (user)</a></td>
+	<td class="summary">Check if there are pending actions for user</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.orgs:interact">modpol.orgs:interact (process_id, user)</a></td>
+	<td class="summary">Interact a user with given process</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "modpol.orgs.call_module"></a>
+    <strong>modpol.orgs.call_module (module_slug, intiator, config, result)</strong>
+    </dt>
+    <dd>
+    Call modules
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">module_slug</span>
+         Same as module name
+        </li>
+        <li><span class="parameter">intiator</span>
+         Initiator for module
+        </li>
+        <li><span class="parameter">config</span>
+         Config for module
+        </li>
+        <li><span class="parameter">result</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs.get_root_process"></a>
+    <strong>modpol.orgs.get_root_process (id)</strong>
+    </dt>
+    <dd>
+    Get the root process of the given id
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">id</span>
+
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        root process
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs.delete_process"></a>
+    <strong>modpol.orgs.delete_process (id)</strong>
+    </dt>
+    <dd>
+    Delete the process given id
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">id</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:delete_process_tree"></a>
+    <strong>modpol.orgs:delete_process_tree (id)</strong>
+    </dt>
+    <dd>
+    Delete process tree by id
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">id</span>
+         Id of process tree
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:add_pending_action"></a>
+    <strong>modpol.orgs:add_pending_action (process_id, user, callback)</strong>
+    </dt>
+    <dd>
+    Add a new pending action
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">process_id</span>
+         Process id
+        </li>
+        <li><span class="parameter">user</span>
+         User adding the action
+        </li>
+        <li><span class="parameter">callback</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:remove_pending_action"></a>
+    <strong>modpol.orgs:remove_pending_action (process_id, user)</strong>
+    </dt>
+    <dd>
+    Remove a pending action
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">process_id</span>
+         Process id to be removed
+        </li>
+        <li><span class="parameter">user</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:wipe_pending_actions"></a>
+    <strong>modpol.orgs:wipe_pending_actions (process_id)</strong>
+    </dt>
+    <dd>
+    Wipe all pending actions for process
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">process_id</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:has_pending_actions"></a>
+    <strong>modpol.orgs:has_pending_actions (user)</strong>
+    </dt>
+    <dd>
+    Check if there are pending actions for user
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">user</span>
+         User
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        True if there are pending actions for a user, false if not
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.orgs:interact"></a>
+    <strong>modpol.orgs:interact (process_id, user)</strong>
+    </dt>
+    <dd>
+    Interact a user with given process
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">process_id</span>
+
+        </li>
+        <li><span class="parameter">user</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 160 - 0
docs/doc/modules/modpol.util.misc.html

@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><strong>modpol.util.misc</strong></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>modpol.util.misc</code></h1>
+<p>Miscellaneous functions</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#modpol.util.copy_table">modpol.util.copy_table (t)</a></td>
+	<td class="summary">Returns a copy of the table inputted</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#modpol.util.num_pairs">modpol.util.num_pairs (t)</a></td>
+	<td class="summary">Returns the number of elements in a pairs table</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "modpol.util.copy_table"></a>
+    <strong>modpol.util.copy_table (t)</strong>
+    </dt>
+    <dd>
+    Returns a copy of the table inputted
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">t</span>
+         table to copy
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        copy of table
+    </ol>
+
+
+
+
+</dd>
+    <dt>
+    <a name = "modpol.util.num_pairs"></a>
+    <strong>modpol.util.num_pairs (t)</strong>
+    </dt>
+    <dd>
+    Returns the number of elements in a pairs table
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">t</span>
+         pairs table
+        </li>
+    </ul>
+
+    <h3>Returns:</h3>
+    <ol>
+
+        number of elements in pairs table
+    </ol>
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 91 - 0
docs/doc/modules/modpol_minetest.api.html

@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><strong>modpol_minetest.api</strong></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>modpol_minetest.api</code></h1>
+<p>Script for loading Minetest files</p>
+<p></p>
+
+
+
+<br/>
+<br/>
+
+
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 93 - 0
docs/doc/modules/modpol_minetest.overrides.interactions.html

@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><strong>modpol_minetest.overrides.interactions</strong></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>modpol_minetest.overrides.interactions</code></h1>
+<p>INTERACTIONS.LUA (for Minetest)
+ CONTEXTUAL STUFF
+ ================</p>
+<p></p>
+
+
+
+<br/>
+<br/>
+
+
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 223 - 0
docs/doc/modules/module_template.html

@@ -0,0 +1,223 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+<li><a href="#Tables">Tables</a></li>
+<li><a href="#Fields">Fields</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><strong>module_template</strong></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>module_template</code></h1>
+<p>Template for module writers.</p>
+<p>
+ Short description goes here.</p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">(Required): Initiate function
+ Modules have access to the following instance variables:
+ <li><code>self.org</code> (the org the module was called in),</li>
+ <li><code>self.initiator</code> (the user that callced the module),</li>
+ <li><code>self.id</code> (the process id of the module instance)</li></td>
+	</tr>
+</table>
+<h2><a href="#Tables">Tables</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#data">data</a></td>
+	<td class="summary">(Required) Data for module
+ Variables that module uses during the course of a process.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#config">config</a></td>
+	<td class="summary">(Required): Config for module
+ Defines the input parameters to the module initiate function.</td>
+	</tr>
+</table>
+<h2><a href="#Fields">Fields</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#modpol.modules.module_template">modpol.modules.module_template</a></td>
+	<td class="summary">(Required) Add to module table</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    (Required): Initiate function
+ Modules have access to the following instance variables:
+ <li><code>self.org</code> (the org the module was called in),</li>
+ <li><code>self.initiator</code> (the user that callced the module),</li>
+ <li><code>self.id</code> (the process id of the module instance)</li>
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         (optional) Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header "><a name="Tables"></a>Tables</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "data"></a>
+    <strong>data</strong>
+    </dt>
+    <dd>
+    (Required) Data for module
+ Variables that module uses during the course of a process.
+ Can be blank
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "config"></a>
+    <strong>config</strong>
+    </dt>
+    <dd>
+    (Required): Config for module
+ Defines the input parameters to the module initiate function.
+ Can be blank
+ When calling a module from within another module,
+ variables not defined in config will be ignored.
+ Default values set in config can be overridden
+
+
+    <h3>Fields:</h3>
+    <ul>
+        <li><span class="parameter">field_1</span>
+         ex: votes_required, default = 5
+        </li>
+        <li><span class="parameter">field_2</span>
+         ex: voting_type, default = "majority"
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header "><a name="Fields"></a>Fields</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "modpol.modules.module_template"></a>
+    <strong>modpol.modules.module_template</strong>
+    </dt>
+    <dd>
+    (Required) Add to module table
+
+
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 127 - 0
docs/doc/modules/priv_to_org.html

@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><strong>priv_to_org</strong></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>priv_to_org</code></h1>
+<p>Set privilege to org members
+ Allows initiator to grant a priv they have to all members of an org</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Initiate function</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Initiate function
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 144 - 0
docs/doc/modules/randomizer.html

@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><strong>randomizer</strong></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>randomizer</code></h1>
+<p>A utility module that outputs a random result from a set of options</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Initiate function</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#random_loop">random_loop ()</a></td>
+	<td class="summary">Returns result_table</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Initiate function
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "random_loop"></a>
+    <strong>random_loop ()</strong>
+    </dt>
+    <dd>
+    Returns result_table
+
+
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 146 - 0
docs/doc/modules/remove_child_consent.html

@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><strong>remove_child_consent</strong></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>remove_child_consent</code></h1>
+<p>Remove child (consent).</p>
+<p>
+ A simple module that calls a consent process on an org to remove its child.
+ Depends on the Consent module.</p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Removes a child org with consent</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#complete">complete ()</a></td>
+	<td class="summary">Complete the remove process</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Removes a child org with consent
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "complete"></a>
+    <strong>complete ()</strong>
+    </dt>
+    <dd>
+    Complete the remove process
+
+
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 144 - 0
docs/doc/modules/remove_member_consent.html

@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><strong>remove_member_consent</strong></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>remove_member_consent</code></h1>
+<p>Calls consent to remove member from org</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Removes given member from org</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#complete">complete ()</a></td>
+	<td class="summary">Complete after consent</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Removes given member from org
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "complete"></a>
+    <strong>complete ()</strong>
+    </dt>
+    <dd>
+    Complete after consent
+
+
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 126 - 0
docs/doc/modules/remove_org.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><strong>remove_org</strong></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>remove_org</code></h1>
+<p>A simple module that removes an org.</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Removes org</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Removes org
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 146 - 0
docs/doc/modules/remove_org_consent.html

@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><strong>remove_org_consent</strong></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>remove_org_consent</code></h1>
+<p>Remove org (consent)
+ A simple module that calls a consent process on an org to remove it.</p>
+<p>
+ Depends on the Consent module.</p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Remove org if all members consent</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#complete">complete ()</a></td>
+	<td class="summary">Complete after consent</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Remove org if all members consent
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "complete"></a>
+    <strong>complete ()</strong>
+    </dt>
+    <dd>
+    Complete after consent
+
+
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 126 - 0
docs/doc/modules/remove_process.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><strong>remove_process</strong></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>remove_process</code></h1>
+<p>Remove a process</p>
+<p></p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Initiate function</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Initiate function
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 146 - 0
docs/doc/modules/rename_org_consent.html

@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><strong>rename_org_consent</strong></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>rename_org_consent</code></h1>
+<p>Rename org (consent)
+ A simple module that calls a consent process on an org to rename it.</p>
+<p>
+ Depends on the Consent module.</p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Renames the org after consent is reached</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#complete">complete ()</a></td>
+	<td class="summary">Changes the name of the org after consent is reached</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Renames the org after consent is reached
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "complete"></a>
+    <strong>complete ()</strong>
+    </dt>
+    <dd>
+    Changes the name of the org after consent is reached
+
+
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 157 - 0
docs/doc/modules/send_token.html

@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+<li><a href="#Tables">Tables</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><strong>send_token</strong></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><a href="../modules/tokenomics.html">tokenomics</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>send_token</code></h1>
+<p>Send token.</p>
+<p>
+ Depends on tokenomics</p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">initiate function</td>
+	</tr>
+</table>
+<h2><a href="#Tables">Tables</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#data">data</a></td>
+	<td class="summary">(Required) Data for module
+ Variables that module uses during the course of a process
+ Can be blank</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    initiate function
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header "><a name="Tables"></a>Tables</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "data"></a>
+    <strong>data</strong>
+    </dt>
+    <dd>
+    (Required) Data for module
+ Variables that module uses during the course of a process
+ Can be blank
+
+
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 357 - 0
docs/doc/modules/tokenomics.html

@@ -0,0 +1,357 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<head>
+    <title>Reference</title>
+    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+	<div id="product_logo"></div>
+	<div id="product_name"><big><b></b></big></div>
+	<div id="product_description"></div>
+</div> <!-- id="product" -->
+
+
+<div id="main">
+
+
+<!-- Menu -->
+
+<div id="navigation">
+<br/>
+<h1>Modpol</h1>
+
+<ul>
+  <li><a href="../index.html">Index</a></li>
+</ul>
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#Functions">Functions</a></li>
+<li><a href="#Tables">Tables</a></li>
+</ul>
+
+
+<h2>Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/create_token.html">create_token</a></li>
+  <li><a href="../modules/defer_consent.html">defer_consent</a></li>
+  <li><a href="../modules/display_processes.html">display_processes</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/randomizer.html">randomizer</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/remove_process.html">remove_process</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/send_token.html">send_token</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+  <li><strong>tokenomics</strong></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+  <li><a href="../modules/modpol_minetest.overrides.interactions.html">modpol_minetest.overrides.interactions</a></li>
+</ul>
+
+</div>
+
+<div id="content">
+
+<h1>Module <code>tokenomics</code></h1>
+<p>Tokenomics.</p>
+<p>
+ Depends on consent</p>
+
+
+<h2><a href="#Functions">Functions</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#initiate">initiate (result)</a></td>
+	<td class="summary">Initiate function: creates a token in an org.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#create_token">create_token ()</a></td>
+	<td class="summary">Create token</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#balance">balance (org, token, user)</a></td>
+	<td class="summary">Returns balance.</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#change_balance">change_balance (org, token, user, amount)</a></td>
+	<td class="summary">Change balance</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#transfer">transfer (org, token, sender, recipient, amount)</a></td>
+	<td class="summary">Transfer tokens from a sender to recipient</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#treasury_transfer">treasury_transfer (org, token, recipient, amount)</a></td>
+	<td class="summary">Transfer from treasury</td>
+	</tr>
+	<tr>
+	<td class="name" nowrap><a href="#issue">issue (org, token, amount)</a></td>
+	<td class="summary">Creates new tokens in the org treasury</td>
+	</tr>
+</table>
+<h2><a href="#Tables">Tables</a></h2>
+<table class="function_list">
+	<tr>
+	<td class="name" nowrap><a href="#config">config</a></td>
+	<td class="summary">Config for module</td>
+	</tr>
+</table>
+
+<br/>
+<br/>
+
+
+    <h2 class="section-header "><a name="Functions"></a>Functions</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "initiate"></a>
+    <strong>initiate (result)</strong>
+    </dt>
+    <dd>
+    Initiate function: creates a token in an org.
+ Set up the token data structure.
+ Create an org treasury
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">result</span>
+         (optional) Callback if this module is embedded in other modules
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "create_token"></a>
+    <strong>create_token ()</strong>
+    </dt>
+    <dd>
+    Create token
+
+
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "balance"></a>
+    <strong>balance (org, token, user)</strong>
+    </dt>
+    <dd>
+    Returns balance.
+ If no user, get treasury balance
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">org</span>
+         Name (string) or id (num)
+        </li>
+        <li><span class="parameter">token</span>
+         Slug (string)
+        </li>
+        <li><span class="parameter">user</span>
+         Name (string)
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "change_balance"></a>
+    <strong>change_balance (org, token, user, amount)</strong>
+    </dt>
+    <dd>
+    Change balance
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">org</span>
+         Org name (string) or id (number)
+        </li>
+        <li><span class="parameter">token</span>
+         Token slug (string)
+        </li>
+        <li><span class="parameter">user</span>
+
+        </li>
+        <li><span class="parameter">amount</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "transfer"></a>
+    <strong>transfer (org, token, sender, recipient, amount)</strong>
+    </dt>
+    <dd>
+    Transfer tokens from a sender to recipient
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">org</span>
+
+        </li>
+        <li><span class="parameter">token</span>
+
+        </li>
+        <li><span class="parameter">sender</span>
+
+        </li>
+        <li><span class="parameter">recipient</span>
+
+        </li>
+        <li><span class="parameter">amount</span>
+         Positive number
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "treasury_transfer"></a>
+    <strong>treasury_transfer (org, token, recipient, amount)</strong>
+    </dt>
+    <dd>
+    Transfer from treasury
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">org</span>
+
+        </li>
+        <li><span class="parameter">token</span>
+
+        </li>
+        <li><span class="parameter">recipient</span>
+
+        </li>
+        <li><span class="parameter">amount</span>
+         Can be positive or negative, assumes flow from treasury to recipient
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+    <dt>
+    <a name = "issue"></a>
+    <strong>issue (org, token, amount)</strong>
+    </dt>
+    <dd>
+    Creates new tokens in the org treasury
+
+
+    <h3>Parameters:</h3>
+    <ul>
+        <li><span class="parameter">org</span>
+
+        </li>
+        <li><span class="parameter">token</span>
+
+        </li>
+        <li><span class="parameter">amount</span>
+
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+    <h2 class="section-header "><a name="Tables"></a>Tables</h2>
+
+    <dl class="function">
+    <dt>
+    <a name = "config"></a>
+    <strong>config</strong>
+    </dt>
+    <dd>
+    Config for module
+
+
+    <h3>Fields:</h3>
+    <ul>
+        <li><span class="parameter">consent</span>
+         Require consent to create?
+        </li>
+        <li><span class="parameter">token_variables</span>
+         the data that goes into the token
+        </li>
+        <li><span class="parameter">token_slug</span>
+         A no-spaces slug for the token
+        </li>
+        <li><span class="parameter">initial_treasury</span>
+         Quantity in org treasury
+        </li>
+        <li><span class="parameter">negative_spend</span>
+         Boolean: can users spend negative tokens? (for mutual credit)
+        </li>
+        <li><span class="parameter">balances</span>
+         Table of user balances
+        </li>
+    </ul>
+
+
+
+
+
+</dd>
+</dl>
+
+
+</div> <!-- id="content" -->
+</div> <!-- id="main" -->
+<div id="about">
+<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
+<i style="float:right;">Last updated 2022-01-23 18:18:51 </i>
+</div> <!-- id="about" -->
+</div> <!-- id="container" -->
+</body>
+</html>

+ 63 - 0
docs/headers_template.html

@@ -0,0 +1,63 @@
+<h2>Basic Functions</h2>
+<ul class="nowrap">
+  <li><a href="modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+</ul>
+
+<h2>Core Modules</h2>
+<ul class="nowrap">
+  <li><a href="modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="modules/change_modules.html">change_modules</a></li>
+  <li><a href="modules/consent.html">consent</a></li>
+  <li><a href="modules/join_org.html">join_org</a></li>
+  <li><a href="modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="modules/leave_org.html">leave_org</a></li>
+  <li><a href="modules/message_org.html">message_org</a></li>
+  <li><a href="modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="modules/remove_org.html">remove_org</a></li>
+  <li><a href="modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="modules/module_template.html">module_template</a></li>
+</ul>
+
+<h2>Minetest Modules</h2>
+<ul class="nowrap">
+  <li><a href="modules/priv_to_org.html">priv_to_org</a></li>
+</ul>
+
+
+
+<h2>Basic Functions</h2>
+<ul class="nowrap">
+  <li><a href="../modules/modpol.interactions.html">modpol.interactions</a></li>
+  <li><a href="../modules/modpol.orgs.base.html">modpol.orgs.base</a></li>
+  <li><a href="../modules/modpol.orgs.process.html">modpol.orgs.process</a></li>
+  <li><a href="../modules/modpol.util.misc.html">modpol.util.misc</a></li>
+  <li><a href="../modules/modpol_minetest.api.html">modpol_minetest.api</a></li>
+</ul>
+
+<h2>Core Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/add_child_org_consent.html">add_child_org_consent</a></li>
+  <li><a href="../modules/change_modules.html">change_modules</a></li>
+  <li><a href="../modules/consent.html">consent</a></li>
+  <li><a href="../modules/join_org.html">join_org</a></li>
+  <li><a href="../modules/join_org_consent.html">join_org_consent</a></li>
+  <li><a href="../modules/leave_org.html">leave_org</a></li>
+  <li><a href="../modules/message_org.html">message_org</a></li>
+  <li><a href="../modules/remove_child_consent.html">remove_child_consent</a></li>
+  <li><a href="../modules/remove_member_consent.html">remove_member_consent</a></li>
+  <li><a href="../modules/remove_org.html">remove_org</a></li>
+  <li><a href="../modules/remove_org_consent.html">remove_org_consent</a></li>
+  <li><a href="../modules/rename_org_consent.html">rename_org_consent</a></li>
+  <li><a href="../modules/module_template.html">module_template</a></li>
+</ul>
+
+<h2>Minetest Modules</h2>
+<ul class="nowrap">
+  <li><a href="../modules/priv_to_org.html">priv_to_org</a></li>
+</ul>

+ 51 - 38
modpol_core/interactions/interactions.lua

@@ -1,7 +1,7 @@
--- INTERACTIONS.LUA (CLI)
-
--- User interaction functions for Modpol
+--- INTERACTIONS.LUA (CLI).
+-- User interaction functions for Modular Politics
 -- Called by modpol.lua
+-- @module modpol.interactions
 
 modpol.interactions = {}
 
@@ -9,10 +9,11 @@ modpol.interactions = {}
 -- DASHBOARDS
 -- ==========
 
--- Function: modpol.interactions.dashboard(user)
--- Params: user (string)
+--- Output: Display a menu of commands to the user
+-- @function modpol.interactions.dashboard
+-- @param user (string)
+
 -- Q: Should this return a menu of commands relevant to the specific user?
--- Output: Displays a menu of commands to the user
 -- TKTK currently just prints all of modpol---needs major improvement
 function modpol.interactions.dashboard(user)
    -- adds user to root org if not already in it
@@ -96,10 +97,10 @@ function modpol.interactions.dashboard(user)
    end
 end
    
-
--- Function: modpol.interactions.org_dashboard
--- Params: user (string), org_string (string or id)
--- Output: Displays a menu of org-specific commands to the user
+--- Output: Displays a menu of org-specific commands to the user
+-- @function modpol.interactions.org_dashboard
+-- @param user (string)
+-- @param org_string (string or id)
 function modpol.interactions.org_dashboard(user, org_string)
    local org = modpol.orgs.get_org(org_string)
    if not org then return nil end
@@ -241,21 +242,22 @@ function modpol.interactions.user_dashboard(viewer, user, completion)
 end
 
 
--- buttons: message, done
+
 
 -- INTERACTION PRIMITIVES
 -- ======================
 
--- Function: modpol.interactions.message
--- Produces a brief message to a user
--- input: user (string), message (string)
--- output: prints message to CLI
+--- Prints message to CLI.
+-- Buttons: message, done
+-- @function modpol.interactions.message
+-- @param user (string)
+-- @param message (string)
 function modpol.interactions.message(user, message)
    print(user .. ": " .. message)
 end
 
---- Function: modpol.interactions.message_user
--- Gets and sends a message from one user to another
+--- Gets and sends a message from one user to another
+-- @function modpol.interactions.message_user
 -- @param sender Name of user sending (string)
 -- @param recipient Name of user receiving (string)
 function modpol.interactions.message_user(sender, recipient)
@@ -266,8 +268,9 @@ function modpol.interactions.message_user(sender, recipient)
       sel.." [from "..sender.."]")
 end
 
---- Function: modpol.interactions.display
--- Displays complex data to a user
+
+--- Displays complex data to a user
+-- @function modpol.interactions.display
 -- @param user Name of target user (string)
 -- @param title Title of display (string)
 -- @param message Content of message (string or table of strings)
@@ -299,20 +302,25 @@ function modpol.interactions.display(user, title, message, completion)
 end
 
 
--- Function: modpol.interactions.text_query
--- input: User (string), Query (string), func (function)
---   func input: user input (string)
--- output: Applies "func" to user input
+--- Applies "func" to user input.
+-- Func input: user input (string)
+-- @function modpol.interactions.text_query
+-- @param User (string)
+-- @param Query (string)
+-- @param func (function)
 function modpol.interactions.text_query(user, query, func)
    print(user .. ": " .. query)
    answer = io.read()
    func(answer)
 end
 
--- Function: dropdown_query
--- input: user (string), label (string), options (table of strings), func(choice) (function)
---   func input: choice (string)
--- output: calls func on choice
+--- Output: Calls func on choice.
+-- Func input: choice (string)
+-- @function modpol.interactions.dropdown_query
+-- @param user (string)
+-- @param label (string)
+-- @param options (table of strings)
+-- @param func (choice) (function)
 function modpol.interactions.dropdown_query(user, label, options, func)
    -- set up options
    local options_display = ""
@@ -348,12 +356,13 @@ function modpol.interactions.dropdown_query(user, label, options, func)
    end
 end
 
---- Function: modpol.interactions.checkbox_query
--- Allows user to select from a set of options
+
+--- Allows user to select from a set of options
+-- @function modpol.interactions.checkbox_query
 -- @param user Name of user (string)
 -- @param label Query for user before options (string)
--- @param options table of options and their checked status in the form {{"option_1_string", true}, {"option_2_string", false}}
--- @param func function to be called with param "input", made up of the corrected table in the same format as the param options
+-- @param options Table of options and their checked status in the form {{"option_1_string", true}, {"option_2_string", false}}
+-- @param func Function to be called with param "input", made up of the corrected table in the same format as the param options
 function modpol.interactions.checkbox_query(
       user, label, options, func)
    -- set up options
@@ -397,10 +406,12 @@ function modpol.interactions.checkbox_query(
 end
 
 
--- Function: modpol.interactions.binary_poll_user
--- Params: user (string), question (string), func (function)
---   func input: user input (string: y/n)
--- Output: Applies "func" to user input
+--- Output: Applies "func" to user input. 
+-- Func input: user input (string: y/n)
+-- @function modpol.interactions.binary_poll_user
+-- @param user (string)
+-- @param question (string)
+-- @param func (function)
 function modpol.interactions.binary_poll_user(user, question, func)
    local query = "Poll for " .. user .. " (y/n): ".. question
    local answer
@@ -422,9 +433,11 @@ end
 -- COMPLEX INTERACTIONS
 -- ====================
 
--- Function: modpol.interactions.message_org
--- input: initiator (string), org (number or string), message (string)
--- output: broadcasts message to all org members
+--- Output: broadcasts message to all org members
+-- @function modpol.interactions.message_org
+-- @param initiator (string)
+-- @param org (number or string)
+-- @param message (string)
 function modpol.interactions.message_org(initiator, org, message)
    local this_org = modpol.orgs.get_org(org)
    local users = this_org:list_members()

+ 7 - 4
modpol_core/modules/add_child_org_consent.lua

@@ -1,6 +1,6 @@
---- @module add_child_org_consent
--- Adds a child org
+--- Adds a child org.
 -- Depends on `consent`
+-- @module add_child_org_consent
 
 local add_child_org_consent = {
     name = "Add child org (consent)",
@@ -14,7 +14,9 @@ add_child_org_consent.data = {
 add_child_org_consent.config = {
 }
 
--- @function initiate
+--- Initiate consent for new child org
+-- @function add_child_org_consent:initiate(result)
+-- @param result Callback if this module is embedded in other modules
 function add_child_org_consent:initiate(result)
    modpol.interactions.text_query(
       self.initiator,"Child org name: ",
@@ -60,6 +62,8 @@ function add_child_org_consent:initiate(result)
    )
 end
 
+--- Create a new child orgg
+-- @function add_child_org_consent:create_child_org
 function add_child_org_consent:create_child_org()
    self.org:add_org(self.data.child_name, self.initiator)
    modpol.interactions.message_org(
@@ -71,5 +75,4 @@ function add_child_org_consent:create_child_org()
    self.org:delete_process(self.id)
 end
       
---- (Required) Add to module table
 modpol.modules.add_child_org_consent = add_child_org_consent

+ 12 - 3
modpol_core/modules/change_modules-dropdown.lua

@@ -16,6 +16,9 @@ change_modules.data = {
 change_modules.config = {
 }
 
+--- Change modules initiate
+-- @function change_modules:initiate
+-- @param result Callback if this module is embedded in other modules
 function change_modules:initiate(result)
    self.data.result = result
    -- Step 1: add or remove?
@@ -32,6 +35,8 @@ function change_modules:initiate(result)
    )
 end
 
+--- Add a new module
+-- @function change_modules:add_module
 function change_modules:add_module()
    -- prepare module options
    local available_modules = modpol.util.copy_table(modpol.modules)
@@ -78,6 +83,8 @@ function change_modules:add_module()
    )
 end
 
+--- Remove a module
+-- @function change_modules:remove_module
 function change_modules:remove_module()
    -- prepare module options
    local available_modules = {}
@@ -125,8 +132,11 @@ function change_modules:remove_module()
    )
 end
 
---- propose_change
--- @field type "add" or "remove"
+--- Propose a change.
+-- Type "add" or "remove"
+-- @function change_modules:propose_change
+-- @param type
+-- @param mod_text
 function change_modules:propose_change(type, mod_text)
    self:call_module(
       "consent",self.initiator,
@@ -165,5 +175,4 @@ function change_modules:propose_change(type, mod_text)
    self.org:delete_process(self.id)
 end
    
---- (Required) Add to module table
 modpol.modules.change_modules = change_modules

+ 5 - 2
modpol_core/modules/change_modules.lua

@@ -1,6 +1,6 @@
 --- change_modules
--- @module change_modules
 -- Depends on consent
+-- @module change_modules
 
 local change_modules = {
     name = "Change modules (consent)",
@@ -19,6 +19,10 @@ change_modules.data = {
 change_modules.config = {
 }
 
+--- Initiate change in modules.
+-- Either adds or removes module depending on user input
+-- @function change_modules:initiate
+-- @param result Callback if this module is embedded in other modules
 function change_modules:initiate(result)
    self.data.result = result
    self.data.add_modules = {}
@@ -112,5 +116,4 @@ function change_modules:implement_change()
    self.org:delete_process(self.id)
 end
    
---- (Required) Add to module table
 modpol.modules.change_modules = change_modules

+ 8 - 2
modpol_core/modules/consent.lua

@@ -1,5 +1,5 @@
---- @module consent
--- A utility module for checking consent
+--- A utility module for checking consent
+-- @module consent
 
 local consent = {
     name = "Consent process",
@@ -17,6 +17,9 @@ consent.config = {
     votes_required = 1
 }
 
+--- Initiate consent
+-- @function consent:initiate
+-- @param result Callback if this module is embedded in other modules
 function consent:initiate(result)
    self.data.result = result
    -- if org is empty, consent is given automatically
@@ -32,6 +35,9 @@ function consent:initiate(result)
    end
 end
 
+--- Callback
+-- @function consent:callback
+-- @param member
 function consent:callback(member)
     modpol.interactions.binary_poll_user(
         member,

+ 5 - 9
modpol_core/modules/create_token.lua

@@ -1,6 +1,6 @@
---- create_token
+--- Create token.
+-- Depends on tokenomics
 -- @module create_token
--- depends on tokenomics
 
 local create_token = {
     name = "Create a token (consent)",
@@ -9,9 +9,6 @@ local create_token = {
     hide = false;
 }
 
---- (Required) Data for module
--- Variables that module uses during the course of a process
--- Can be blank
 create_token.data = {
 }
 
@@ -19,9 +16,9 @@ create_token.config = {
    token_name = ""
 }
 
---- (Required): initiate function
--- @param result (optional) Callback if this module is embedded in other modules
--- @function initiate
+--- Initiate function
+-- @function create_toke:initiate
+-- @param result Callback if this module is embedded in other modules
 function create_token:initiate(result)
    modpol.interactions.text_query(
       self.initiator,
@@ -49,5 +46,4 @@ function create_token:initiate(result)
    )
 end
 
---- (Required) Add to module table
 modpol.modules.create_token = create_token

+ 5 - 13
modpol_core/modules/defer_consent.lua

@@ -1,11 +1,6 @@
---- defer_consent
+--- Defer consent
 -- @module defer_consent
 
---- (Required): data table containing name and description of the module
--- @field name "Human-readable name (parens OK, no brackets)"
--- @field slug "Same as module class name"
--- @field desc "Description of the module"
--- @field hide "Whether this is a hidden utility module"
 local defer_consent = {
     name = "Defer consent",
     slug = "defer_consent",
@@ -13,13 +8,10 @@ local defer_consent = {
     hide = true;
 }
 
---- (Required) Data for module
--- Variables that module uses during the course of a process
--- Can be blank
 defer_consent.data = {
 }
 
---- (Required): config for module 
+--- Config for module 
 -- @field defer_org Name or ID of target org
 -- @field votes_required Threshold passed on to `consent`
 -- @field prompt String passed on to `consent`
@@ -29,9 +21,9 @@ defer_consent.config = {
     prompt = "Do you consent?"
 }
 
---- (Required): initiate function
--- @param result (optional) Callback if this module is embedded in other modules
--- @function initiate
+--- Initiate function
+-- @param result Callback if this module is embedded in other modules
+-- @function defer_consent:initiate
 function defer_consent:initiate(result)
    local defer_org = modpol.orgs.get_org(self.config.defer_org)
    if not defer_org then

+ 4 - 8
modpol_core/modules/display_processes.lua

@@ -1,4 +1,4 @@
---- display_processes
+--- Display processes
 -- @module display_processes
 
 local display_processes = {
@@ -8,18 +8,15 @@ local display_processes = {
     hide = false;
 }
 
---- (Required) Data for module
--- Variables that module uses during the course of a process
--- Can be blank
 display_processes.data = {
 }
 
 display_processes.config = {
 }
 
---- (Required): initiate function
--- @param result (optional) Callback if this module is embedded in other modules
--- @function initiate
+--- Initiate function
+-- @function display_processes:initiate
+-- @param result Callback if this module is embedded in other modules
 function display_processes:initiate(result)
    local display_table = {}
    for k,v in pairs(self.org.processes) do
@@ -66,5 +63,4 @@ function display_processes:initiate(result)
    )
 end
 
---- (Required) Add to module table
 modpol.modules.display_processes = display_processes

+ 5 - 0
modpol_core/modules/join_org.lua

@@ -1,3 +1,5 @@
+--- Adds a user to org
+-- @module join_org
 
 join_org = {}
 
@@ -7,6 +9,9 @@ join_org.setup = {
    desc = "If consent process is passed, initiator joins this org."
 }
 
+--- Adds the user to the org
+-- @function join_org.initiate
+-- @param result Callback if this module is embedded in other modules
 function join_org.initiate(result) 
     modpol.interactions.binary_poll_user(
         initiator, 

+ 7 - 1
modpol_core/modules/join_org_consent.lua

@@ -1,6 +1,7 @@
---- Join org (consent)
+--- Join org (consent).
 -- A simple module that calls a consent process on an org to add a member.
 -- Depends on the Consent module.
+-- @module join_org_consent
 
 local join_org_consent = {
     name = "Join this org (consent)",
@@ -15,6 +16,9 @@ join_org_consent.data = {
 join_org_consent.config = {
 }
 
+--- Initiate join org with consent
+-- @function join_org_consent:initiate
+-- @param result Callback if this module is embedded in other modules
 function join_org_consent:initiate(result)
    if self.org:has_member(self.initiator) then
       modpol.interactions.message(
@@ -38,6 +42,8 @@ function join_org_consent:initiate(result)
    end
 end
 
+--- Adds member to org, notifies org, and deletes process
+-- @function join_org_consent:complete
 function join_org_consent:complete()
    self.org:add_member(self.initiator)
    modpol.interactions.message_org(

+ 4 - 6
modpol_core/modules/leave_org.lua

@@ -1,4 +1,4 @@
---- leave_org
+--- Removes initiator from org
 -- @module leave_org
 
 local leave_org = {
@@ -13,10 +13,9 @@ leave_org.data = {
 leave_org.config = {
 }
 
---- (Required): initiate function
--- Modules have access to the following instance variables:
--- @param result (optional) Callback if this module is embedded in other modules
--- @function initiate
+--- Removes user from org
+-- @function leave_org:initiate
+-- @param result Callback if this module is embedded in other modules
 function leave_org:initiate(result)
    if self.org == modpol.instance then
       modpol.interactions.message(
@@ -35,5 +34,4 @@ function leave_org:initiate(result)
    self.org:delete_process(self.id)
 end
 
---- (Required) Add to module table
 modpol.modules.leave_org = leave_org

+ 3 - 2
modpol_core/modules/message_org.lua

@@ -1,4 +1,4 @@
---- message_org
+--- Messages all org members
 -- @module message_org
 
 local message_org = {
@@ -14,7 +14,9 @@ message_org.data = {
 message_org.config = {
 }
 
+--- Allows user to send input message to all org members
 -- @function initiate
+-- @param result Callback if this module is embedded in other modules
 function message_org:initiate(result)
    modpol.interactions.text_query(
       self.initiator, "Message to all org members: ",
@@ -34,5 +36,4 @@ function message_org:initiate(result)
    self.org:delete_process(self.id)
 end
 
---- (Required) Add to module table
 modpol.modules.message_org = message_org

+ 7 - 3
modpol_core/modules/randomizer.lua

@@ -1,5 +1,5 @@
---- @module randomizer
--- A utility module that outputs a random result from a set of options
+--- A utility module that outputs a random result from a set of options
+-- @module randomizer
 
 local randomizer = {
     name = "Randomizer",
@@ -18,6 +18,9 @@ randomizer.config = {
     result_table = {}
 }
 
+--- Initiate function
+-- @function randomizer:initiate
+-- @param result Callback if this module is embedded in other modules
 function randomizer:initiate(result)
    self.data.result = result
    self.data.options_table = modpol.util.copy_table(self.config.options_table)
@@ -32,7 +35,8 @@ function randomizer:initiate(result)
    end
 end
 
--- returns result_table
+--- Returns result_table
+-- @function randomizer:random_loop
 function randomizer:random_loop()
    self.data.results = 0
    if results == self.config.num_results then

+ 8 - 2
modpol_core/modules/remove_child_consent.lua

@@ -1,6 +1,7 @@
---- Remove child (consent)
--- A simple module that calls a consent process on an org to remove its child
+--- Remove child (consent).
+-- A simple module that calls a consent process on an org to remove its child.
 -- Depends on the Consent module.
+-- @module remove_child_consent
 
 local remove_child_consent = {
     name = "Remove child (consent)",
@@ -16,6 +17,9 @@ remove_child_consent.data = {
 remove_child_consent.config = {
 }
 
+--- Removes a child org with consent
+-- @function remove_child_consent:initiate
+-- @param result Callback if this module is embedded in other modules
 function remove_child_consent:initiate(result)
    local children = {}
    for i,v in ipairs(self.org.children) do
@@ -54,6 +58,8 @@ function remove_child_consent:initiate(result)
    end
 end
 
+--- Complete the remove process
+-- @function remove_child_consent:complete
 function remove_child_consent:complete()
    modpol.interactions.message_org(
       self.initiator, self.data.child_to_remove.id,

+ 6 - 2
modpol_core/modules/remove_member_consent.lua

@@ -1,4 +1,4 @@
---- remove_member_consent
+--- Calls consent to remove member from org
 -- @module remove_member_consent
 
 local remove_member_consent = {
@@ -15,6 +15,9 @@ remove_member_consent.data = {
 remove_member_consent.config = {
 }
 
+--- Removes given member from org
+-- @function remove_member_consent:initiate
+-- @param result Callback if this module is embedded in other modules
 function remove_member_consent:initiate(result)
    -- Abort if in root org
    if self.org == modpol.instance then
@@ -49,6 +52,8 @@ function remove_member_consent:initiate(result)
    end
 end
 
+--- Complete after consent
+-- @function remove_member_consent:complete
 function remove_member_consent:complete()
    modpol.interactions.message_org(
       self.initiator, self.org.id,
@@ -60,5 +65,4 @@ function remove_member_consent:complete()
    if self.data.result then self.data.result() end
 end
 
---- (Required) Add to module table
 modpol.modules.remove_member_consent = remove_member_consent

+ 5 - 6
modpol_core/modules/remove_org.lua

@@ -1,8 +1,6 @@
---- @module Remove Org
--- A simple module that removes an org.
+--- A simple module that removes an org.
+-- @module remove_org
 
-
---- Main module table
 remove_org = {
     name = "Remove this org",
     slug = "remove_org",
@@ -12,8 +10,9 @@ remove_org = {
 remove_org.config = {}
 remove_org.data = {}
 
---- Initiate function
--- @function initiate
+--- Removes org
+-- @function remove_org:initiate
+-- @param result Callback if this module is embedded in other modules
 function remove_org:initiate(result)
    if self.org == modpol.instance then
    modpol.interactions.message(

+ 6 - 0
modpol_core/modules/remove_org_consent.lua

@@ -1,6 +1,7 @@
 --- Remove org (consent)
 -- A simple module that calls a consent process on an org to remove it.
 -- Depends on the Consent module.
+-- @module remove_org_consent
 
 local remove_org_consent = {
     name = "Remove this org (consent)",
@@ -15,6 +16,9 @@ remove_org_consent.data = {
 remove_org_consent.config = {
 }
 
+--- Remove org if all members consent
+-- @function remove_org_consent:initiate
+-- @param result Callback if this module is embedded in other modules
 function remove_org_consent:initiate(result)
    if self.org == modpol.instance then
       modpol.interactions.message(
@@ -40,6 +44,8 @@ function remove_org_consent:initiate(result)
    end
 end
 
+--- Complete after consent
+-- @function remove_org_consent:complete
 function remove_org_consent:complete()
    modpol.interactions.message_org(
       self.initiator, self.org.id,

+ 4 - 9
modpol_core/modules/remove_process.lua

@@ -1,4 +1,4 @@
---- remove_process
+--- Remove a process
 -- @module remove_process
 
 local remove_process = {
@@ -8,18 +8,15 @@ local remove_process = {
     hide = false;
 }
 
---- (Required) Data for module
--- Variables that module uses during the course of a process
--- Can be blank
 remove_process.data = {
 }
 
 remove_process.config = {
 }
 
---- (Required): initiate function
--- @param result (optional) Callback if this module is embedded in other modules
--- @function initiate
+--- Initiate function
+-- @function remove_process:initiate
+-- @param result Callback if this module is embedded in other modules
 function remove_process:initiate(result)
    -- prepare process options
    local available_processes = {}
@@ -108,6 +105,4 @@ function remove_process:initiate(result)
    )
 end
 
-
---- (Required) Add to module table
 modpol.modules.remove_process = remove_process

+ 6 - 0
modpol_core/modules/rename_org_consent.lua

@@ -1,6 +1,7 @@
 --- Rename org (consent)
 -- A simple module that calls a consent process on an org to rename it.
 -- Depends on the Consent module.
+-- @module rename_org_consent
 
 local rename_org_consent = {
     name = "Rename this org (consent)",
@@ -16,6 +17,9 @@ rename_org_consent.data = {
 rename_org_consent.config = {
 }
 
+--- Renames the org after consent is reached
+-- @function rename_org_consent:initiate
+-- @param result Callback if this module is embedded in other modules
 function rename_org_consent:initiate(result)
    modpol.interactions.text_query(
       self.initiator,"New org name: ",
@@ -63,6 +67,8 @@ function rename_org_consent:initiate(result)
    )
 end
 
+--- Changes the name of the org after consent is reached
+-- @funciton rename_org_consent
 function rename_org_consent:complete()
    modpol.interactions.message_org(
       self.initiator,

+ 5 - 6
modpol_core/modules/send_token.lua

@@ -1,6 +1,6 @@
---- send_token
+--- Send token.
+-- Depends on tokenomics
 -- @module send_token
--- depends on tokenomics
 
 local send_token = {
     name = "Send tokens",
@@ -19,9 +19,9 @@ send_token.config = {
    token_name = ""
 }
 
---- (Required): initiate function
--- @param result (optional) Callback if this module is embedded in other modules
--- @function initiate
+--- initiate function
+-- @function send_token:initiate
+-- @param result Callback if this module is embedded in other modules
 function send_token:initiate(result)
    local token_list = {}
    if self.org.tokens then
@@ -73,5 +73,4 @@ function send_token:initiate(result)
    end
 end
 
---- (Required) Add to module table
 modpol.modules.send_token = send_token

+ 8 - 7
modpol_core/modules/template.lua

@@ -1,11 +1,12 @@
---- module_template
+--- Template for module writers.
+-- Short description goes here.
 -- @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 (parens OK, no brackets)"
 -- @field slug "Same as module class name"
 -- @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 module_template = {
     name = "Module Human-Readable Name",
     slug = "module_template",
@@ -14,12 +15,12 @@ local module_template = {
 }
 
 --- (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
 module_template.data = {
 }
 
---- (Required): config for module 
+--- (Required): Config for module 
 -- Defines the input parameters to the module initiate function.
 -- Can be blank
 -- When calling a module from within another module,
@@ -32,13 +33,13 @@ module_template.config = {
     field_2 = "majority"
 }
 
---- (Required): initiate function
+--- (Required): Initiate function
 -- Modules have access to the following instance variables:
 -- <li><code>self.org</code> (the org the module was called in),</li>
 -- <li><code>self.initiator</code> (the user that callced the module),</li>
 -- <li><code>self.id</code> (the process id of the module instance)</li>
+-- @function module_template:initiate
 -- @param result (optional) Callback if this module is embedded in other modules
--- @function initiate
 function module_template:initiate(result)
    -- call interaction functions here!
 

+ 32 - 14
modpol_core/modules/tokenomics.lua

@@ -1,6 +1,6 @@
---- tokenomics
--- @module tokenomics
+--- Tokenomics.
 -- Depends on consent
+-- @module tokenomics
 
 local tokenomics = {
     name = "Tokenomics",
@@ -9,14 +9,11 @@ local tokenomics = {
     hide = true;
 }
 
---- (Required) Data for module
--- Variables that module uses during the course of a process
--- Can be blank
 tokenomics.data = {
    result = nil
 }
 
---- (Required): config for module 
+--- Config for module 
 -- @field consent Require consent to create?
 -- @field token_variables the data that goes into the token
 -- @field token_slug A no-spaces slug for the token
@@ -33,11 +30,11 @@ tokenomics.config = {
    }
 }
 
---- (Required): initiate function: creates a token in an org
--- set up the token data structure
--- create an org treasury
+--- Initiate function: creates a token in an org.
+-- Set up the token data structure.
+-- Create an org treasury
+-- @function tokenomics:initiate
 -- @param result (optional) Callback if this module is embedded in other modules
--- @function initiate
 function tokenomics:initiate(result)
    -- TODO need to create a series of interactions to get the info from users
    self.data.result = result
@@ -69,6 +66,8 @@ function tokenomics:initiate(result)
    end
 end
 
+--- Create token
+-- @function tokenomics:create_token
 function tokenomics:create_token()
    if not self.org.tokens then self.org.tokens = {} end
    self.org.tokens[self.config.token_slug] =
@@ -89,8 +88,9 @@ end
 -- all need to write to persistent data
 -- amount can be positive or negative (except transfer)
 
--- returns balance
--- if no user, get treasury balance
+--- Returns balance.
+-- If no user, get treasury balance
+-- @function tokenomics.balance
 -- @param org Name (string) or id (num)
 -- @param token Slug (string)
 -- @param user Name (string)
@@ -112,8 +112,12 @@ function tokenomics.balance(org, token, user)
    end
 end
 
+--- Change balance
+-- @function tokenomics.change_balance
 -- @param org Org name (string) or id (number)
 -- @param token Token slug (string)
+-- @param user
+-- @param amount
 function tokenomics.change_balance(org, token, user, amount)
    local this_org = modpol.orgs.get_org(org)
    if not this_org then
@@ -139,6 +143,12 @@ function tokenomics.change_balance(org, token, user, amount)
    end
 end
 
+--- Transfer tokens from a sender to recipient
+-- @function tokenomics.transfer
+-- @param org
+-- @param token
+-- @param sender
+-- @param recipient
 -- @param amount Positive number
 function tokenomics.transfer(org, token, sender, recipient, amount)
    local sender_balance = tokenomics.balance(org, token, sender)
@@ -161,6 +171,11 @@ function tokenomics.transfer(org, token, sender, recipient, amount)
    end
 end
 
+--- Transfer from treasury
+-- @function tokenomics.treasury_transfer
+-- @param org
+-- @param token
+-- @param recipient
 -- @param amount Can be positive or negative, assumes flow from treasury to recipient
 function tokenomics.treasury_transfer(org, token, recipient, amount)
    local this_org = modpol.orgs.get_org(org)
@@ -189,7 +204,11 @@ function tokenomics.treasury_transfer(org, token, recipient, amount)
    end
 end
 
--- creates new tokens in the org treasury
+--- Creates new tokens in the org treasury
+-- @function tokenomics.issue
+-- @param org
+-- @param token
+-- @param amount
 function tokenomics.issue(org, token, amount)
    local this_org = modpol.orgs.get_org(org)
    if not this_org then
@@ -209,5 +228,4 @@ end
 
 ------------------------------------------
 
---- (Required) Add to module table
 modpol.modules.tokenomics = tokenomics

+ 56 - 40
modpol_core/orgs/base.lua

@@ -1,5 +1,5 @@
---- Orgs: Base
--- Basic functions for orgs
+--- Basic function for orgs
+-- @module modpol.orgs.base
 
 modpol.orgs = modpol.orgs or
 {
@@ -23,8 +23,10 @@ function temp_org()
     }
 end
 
--- ==================================================
--- returns org when given its id or name
+--- Return org when given its id or name
+-- @function modpol.orgs.get_org
+-- @param arg string for name of org or id of org
+-- @return org specified by id or name
 function modpol.orgs.get_org(arg)
     if type(arg) == 'string' then
         for id, org in ipairs(modpol.orgs.array) do
@@ -38,8 +40,9 @@ function modpol.orgs.get_org(arg)
     return nil
 end
 
--- ===============================================
--- returns a table list of all org names
+--- Return a table list of all org names
+-- @function modpol.orgs.list_all
+-- @return a table list of all org names
 function modpol.orgs.list_all()
    local org_table
    for k, v in ipairs(modpol.orgs.array) do
@@ -54,9 +57,10 @@ function modpol.orgs.list_all()
    return org_table
 end
 
--- Function: modpol.orgs.user_orgs(user)
--- input: user (string)
--- output: table of strings of org names
+--- Return the orgs of a user
+-- @function modpol.orgs.user_orgs
+-- @param user string of user name
+-- @return table of strings of org names
 function modpol.orgs.user_orgs(user)
    local all_orgs = modpol.orgs.list_all()
    local user_orgs = {}
@@ -69,8 +73,8 @@ function modpol.orgs.user_orgs(user)
    return user_orgs
 end
 
--- ===========================================
--- deletes all orgs except for the instance
+--- Deletes all orgs except for the 
+-- @function modpol.orgs.reset
 function modpol.orgs.reset()
    local instance_members =
       modpol.util.copy_table(modpol.instance.members)
@@ -88,9 +92,9 @@ function modpol.orgs.reset()
     modpol.orgs:record('Resetting all orgs', 'org_reset')
 end
 
--- ===================================================
--- initializes the instance (root org)
+--- Initializes the instance (root org)
 -- can only be run once, as only one instance can exist
+-- @function modpol.orgs.init_instance
 function modpol.orgs.init_instance()
     local error_msg
     if modpol.orgs.array[1] then
@@ -116,8 +120,8 @@ end
 
 -- FUNCTIONS BEYOND HERE OPERATE ON ORG OBJECTS
 
--- =======================================================
--- records a log message to the modpol ledger
+--- Records a log message to the modpol ledger
+-- @function modpol.orgs:record
 function modpol.orgs:record(msg, entry_type)
     local entry = {
         timestamp = '',
@@ -150,10 +154,12 @@ function modpol.orgs:record(msg, entry_type)
     modpol.store_data()
 end
 
--- ==================================================
--- adds a new sub org to the org it is called on
--- input: name (string), user (string)
--- ex: instance:add_org('town hall')
+--- Adds a new sub org to the org it is called on.
+-- Ex: instance:add_org('town hall')
+-- @function modpol.orgs:add_org
+-- @param name (string) name of new org
+-- @param user (string)
+-- @return child org created
 function modpol.orgs:add_org(name, user)
     if self.id == nil then
         modpol.ocutil.log('Error in ' .. self.name .. ':add_org -> add_org can only be called by another org')
@@ -196,10 +202,10 @@ function modpol.orgs:add_org(name, user)
     return child_org
 end
 
--- ========================================
--- recursively deletes an org and its suborgs
--- leaves entry in modpol.orgs.array as a string "removed"
--- note: "reason" param was removed, can be added back
+--- Recursively deletes an org and its suborgs
+-- Leaves entry in modpol.orgs.array as a string "removed".
+-- Note: "reason" param was removed, can be added back
+-- @function modpol.orgs:delete
 function modpol.orgs:delete()
     if self.id == 1 then
         modpol.ocutil.log('Error in ' .. self.name .. ':delete -> cannot delete instance')
@@ -221,9 +227,10 @@ function modpol.orgs:delete()
 
 end
 
-
--- ===========================================
--- internal function to get the index of a member name
+--- Internal function to get the index of a member name
+-- @function modpol.orgs:get_member_index
+-- @param member
+-- @return index of given member
 function modpol.orgs:get_member_index(member)
     for k, v in ipairs(self.members) do
         if v == member then
@@ -232,8 +239,9 @@ function modpol.orgs:get_member_index(member)
     end
 end
 
--- ===========================================
--- adds a user to an org
+--- Adds a user to an org
+-- @function modpol.orgs:add_member
+-- @param user
 function modpol.orgs:add_member(user)
     for id, name in ipairs(self.members) do
         if user == name then
@@ -255,8 +263,9 @@ function modpol.orgs:add_member(user)
 
 end
 
--- =======================================
--- removes a user from an org
+--- Removes a user from an org
+-- @function modpol.orgs:remove_member
+-- @param user
 function modpol.orgs:remove_member(user)
     -- sets the array index to an empty string so that consecutive list is preserved
     -- empty spots will get filled in by new members
@@ -270,8 +279,10 @@ function modpol.orgs:remove_member(user)
     self:record('Removed member ' .. user, 'del_member')
 end
 
--- ===========================================
--- boolean check whether user is an org
+--- Boolean check whether user is an org
+-- @function modpol.orgs:has_member
+-- @param user
+-- @return true if user is in org, false if not
 function modpol.orgs:has_member(user)
     local user_index = self:get_member_index(user)
     if user_index then
@@ -281,9 +292,9 @@ function modpol.orgs:has_member(user)
     end
 end
 
--- ==================================
--- Function: modpol.orgs:list_members()
--- output: a table of the names (string) of members
+--- 
+-- @function modpol.orgs:list_members()
+-- @return a table of the names (string) of members
 function modpol.orgs:list_members()
    local members = {}
    for k, v in ipairs(self.members) do
@@ -292,8 +303,9 @@ function modpol.orgs:list_members()
    return members
 end
 
--- ==============================
--- because member list uses lazy deletion, using #org.members will not show an accurate number
+--- Because member list uses lazy deletion, using #org.members will not show an accurate number
+-- @function modpol.orgs:get_member_count
+-- @return numbers of members
 function modpol.orgs:get_member_count()
     local count = 0
     for k, v in ipairs(self.members) do
@@ -304,9 +316,13 @@ function modpol.orgs:get_member_count()
     end
     return count
 end
--- ====================================
--- adds a new policy to the policy table
--- must define the policy type, process associated with it, and whether the request must be made by an org member
+
+--- Adds a new policy to the policy table.
+-- Must define the policy type, process associated with it, and whether the request must be made by an org member
+-- @function modpol.orgs:set_policy
+-- @param policy_type
+-- @param process_type
+-- @param must_be_member Boolean
 function modpol.orgs:set_policy(policy_type, process_type, must_be_member)
     local new_policy = {
         process_type = process_type,

+ 38 - 1
modpol_core/orgs/process.lua

@@ -1,5 +1,12 @@
 --- Process functions for orgs
-
+-- @module modpol.orgs.process
+
+--- Call modules
+-- @function modpol.orgs.call_module
+-- @param module_slug Same as module name
+-- @param intiator Initiator for module
+-- @param config Config for module
+-- @param result
 function modpol.orgs:call_module(module_slug, initiator, config, result, parent_id) 
     if not modpol.modules[module_slug] then
         modpol.ocutil.log('Error in ' .. self.name .. ':call_module -> module "' .. module_slug .. '" not found')
@@ -48,6 +55,10 @@ function modpol.orgs:call_module(module_slug, initiator, config, result, parent_
     return index
 end
 
+--- Get the root process of the given id
+-- @function modpol.orgs.get_root_process
+-- @param id
+-- @return root process
 function modpol.orgs:get_root_process(id)
     local process = self.processes[id]
     while (process.parent_id) do
@@ -56,6 +67,9 @@ function modpol.orgs:get_root_process(id)
     return process
 end
 
+--- Delete the process given id
+-- @function modpol.orgs.delete_process
+-- @param id
 function modpol.orgs:delete_process(id)
     local process = self.processes[id]
     if process and process ~= "deleted" then
@@ -74,10 +88,18 @@ function modpol.orgs:delete_process(id)
     end
 end
 
+--- Delete process tree by id
+-- @function modpol.orgs:delete_process_tree
+-- @param id Id of process tree
 function modpol.orgs:delete_process_tree(id)
     self:delete_process(self:get_root_process(id).id)
 end
 
+--- Add a new pending action
+-- @function modpol.orgs:add_pending_action
+-- @param process_id Process id
+-- @param user User adding the action
+-- @param callback
 function modpol.orgs:add_pending_action(process_id, user, callback) 
     self.pending[user] = self.pending[user] or {}
     self.pending[user][process_id] = callback
@@ -85,18 +107,29 @@ function modpol.orgs:add_pending_action(process_id, user, callback)
        user, "New pending action in org "..self.name)
 end
 
+--- Remove a pending action
+-- @function modpol.orgs:remove_pending_action
+-- @param process_id Process id to be removed
+-- @param user
 function modpol.orgs:remove_pending_action(process_id, user) 
     if self.pending[user] then
         self.pending[user][process_id] = nil
     end
 end
 
+--- Wipe all pending actions for process
+-- @function modpol.orgs:wipe_pending_actions
+-- @param process_id
 function modpol.orgs:wipe_pending_actions(process_id)
     for user in pairs(self.pending) do
         self.pending[user][process_id] = nil
     end
 end
 
+--- Check if there are pending actions for user
+-- @function modpol.orgs:has_pending_actions
+-- @param user User
+-- @return True if there are pending actions for a user, false if not
 function modpol.orgs:has_pending_actions(user)
     -- next() will return the next pair in a table
     -- if next() returns nil, the table is empty
@@ -111,6 +144,10 @@ function modpol.orgs:has_pending_actions(user)
     end
 end
 
+--- Interact a user with given process
+-- @function modpol.orgs:interact
+-- @param process_id
+-- @param user
 function modpol.orgs:interact(process_id, user)
    local process = self.processes[process_id]
    if self.pending[user] then

+ 11 - 6
modpol_core/util/misc.lua

@@ -1,8 +1,12 @@
+--- Miscellaneous functions
+-- @module modpol.util.misc
+
 modpol.util = {}
 
---- @function modpol.copy_table
--- @param t table
--- Returns a copy of the table inputted
+--- Returns a copy of the table inputted
+-- @function modpol.util.copy_table
+-- @param t table to copy
+-- @return copy of table
 function modpol.util.copy_table(t)
    local t2 = {}
    if pairs(t) then
@@ -17,9 +21,10 @@ function modpol.util.copy_table(t)
    return t2
 end
 
---- @function modpol.num_pairs
--- @param t table with pairs
--- Returns the number of elements in a pairs table
+--- Returns the number of elements in a pairs table
+-- @function modpol.util.num_pairs
+-- @param t pairs table
+-- @return number of elements in pairs table
 function modpol.util.num_pairs(t)
    local i = 0
    for k,v in pairs(t) do

+ 4 - 5
modpol_minetest/modules/priv_to_org.lua

@@ -1,6 +1,6 @@
 --- Set privilege to org members
--- @module priv_to_org
 -- Allows initiator to grant a priv they have to all members of an org
+-- @module priv_to_org
 
 local priv_to_org = {
     name = "Set privilege to org members",
@@ -14,9 +14,9 @@ priv_to_org.data = {
 priv_to_org.config = {
 }
 
---- (Required): initiate function
--- @param result (optional) Callback if this module is embedded in other modules
--- @function initiate
+--- Initiate function
+-- @function priv_to_org:initiate
+-- @param result
 function priv_to_org:initiate(result) 
    local player_privs = minetest.get_player_privs(self.initiator)
    -- construct table for display
@@ -45,5 +45,4 @@ function priv_to_org:initiate(result)
     if result then result() end
 end
 
---- (Required) Add to module table
 modpol.modules.priv_to_org = priv_to_org

+ 1 - 2
modpol_minetest/overrides/interactions.lua

@@ -1,5 +1,4 @@
--- INTERACTIONS.LUA (for Minetest)
-
+--- INTERACTIONS.LUA (for Minetest)
 -- CONTEXTUAL STUFF
 -- ================
 

+ 4 - 4
modpol_minetest/overrides/users.lua

@@ -1,9 +1,9 @@
 -- ===================================================================
--- Function: modpol.list_users(org)
--- Overwrites function at /users.lua
--- Params:
+--- Overwrites function at /users.lua.
 -- if nil, lists instance members; if an org name, lists its members
--- Output: a table with names of players currently in the game
+-- @function modpol.list_users
+-- @param org
+-- @return a table with names of players currently in the game
 modpol.list_users = function(org)
     local users = {}
     if (org == nil) then -- no specified org; all players