modpol-API
Nathan Schneider edited this page 3 years ago

The purpose of a ModPol API implemented for a specific platform is to enable that platform to use diverse modules developed for the ModPol API.

This documentation describes each function that the general API should provide. Further (or in some cases less) functionality may be available depending on the platform and implementation.

Design principles:

  • All platform-specific calls should occur in the ModPol API implementation, not in various modules
  • Processes should be both accessible and transparent to all affected users
  • Consent is the default control logic, rather than monarchy, which gives users an incentive to adopt a more appropriate arrangement
  • Orgs are a flat list; parent orgs list children in their data
  • Users have unique usernames

Ledger

Define a data structure that maintains a record of governance events. Orgs also have internal ledgers.

Users

Orgs

Define a data structure that maintains a list of orgs and their members. There is always an "instance" org that includes all members.

An org is a nestable, voluntary association of users that comes with certain privileges. It can be used to implement:

  • A contract among users
  • An organization users can join or leave
  • A special role within another org

Interactions

Processes

Commands

Define in-platform commands.