### ----------------------------------------------------
### -- MUGS
### -- Licenses: Artistic-2.0
### -- Authors: Geoffrey Broadwell
### -- File: docs/design/README.md
### ----------------------------------------------------
% MUGS Design Documents

*Reviewed 2021-05-19 by japhb*

**NOTE: If you would like to contribute to MUGS, please read and follow the
[Coding Standards](coding-standards.md) before sending your pull request.**


This directory contains the core MUGS design documents, plus less formal design
notes and sketches.  Note that some may be out of date or NYI (Not Yet
Implemented).  If you notice any of these, feel free to make sure there is an
open issue to address this.

The design docs can be split into several categories:


# Overview and Orientation

* [Coding Standards](coding-standards.md)
* [Architecture Sketch](architecture.md)
* [Repository Layout](repo-layout.md)
* [Game Classes](game-classes.md)
* [Built With](built-with.md)


# Details

* [Concurrency Design](concurrency.md)
* [Logo Ideas](logo.md)
* [Lifecycles](lifecycles.md) **INCOMPLETE**
* [Data Validation](validation.md) **WIP**
* [Error-Handling Principles](error-handling.md) **WIP**
* [Chain of Identity Rights](chain-of-rights.md) **NYI**
* [Login Sequence](login-sequence.md) **NYI**


# Diagrams

* [Queuing Architecture](queuing-architecture.dot.svg)


# Life of a ...

* [Life of a UI](life-of-a-ui.md)  **NEEDS UPDATE**
* [Life of a Request](life-of-a-request.md)  **NEEDS UPDATE**


# Fun With Numbers

* [Supporting "Bullet Hell" Games](bullet-hell.md)
* [Sources of Lag/Latency](lag-sources.md)


# Ruminations

* [Sessions and Identities](sessions.md) **WIP**
* [Caches and Invalidation](caches.md) **NYI**
* [Turns, Rounds, Matches](turns.md) **NYI**
* [Preventing an Identity Apocalypse](identity-apocalypse.md) **PARTIALLY SPECULATIVE**
* [Messaging and Communication](communication.md) **PROBLEM STATEMENT**
* [Dial-A-Game](dial-a-game.md) **ASPIRATIONAL**


