The Game Panel specification

ADR-0013: Core features are modules

Context

The engine is the foundation the rest of the panel builds on, and the module system is its extension mechanism, open to first-party and third-party modules alike.

Some functionality is low-level framework machinery that everything else depends on. Other features are more complex: they typically combine several components, and many of them are configuration-heavy or user-facing.

Decision

The engine holds base framework functionality, the low-level parts that everything else depends on. Features that combine several components, especially configuration-heavy or user-facing ones, are modules, built on the same module system available to third parties. Auth and servers are modules.

Alternatives

No other arrangement was weighed.

Consequences

Easier:

Harder:

Constrained:

Sources