The Game Panel Design record
The Game Panel

Index

Everything in the record, filterable by status. Read-only: documents change in git, not here.

Proposals

RFC

Argued before it is built, frozen once decided

7 View all

Decisions

ADR

One decision, and what it was decided against

23 View all
ADR-0001 The panel is a single system, not a panel and an engine Accepted ADR-0002 Dependencies select their instance through parameter attributes Accepted ADR-0003 Mutable registries are sealed into immutable catalogues Accepted ADR-0004 The container does not implement PSR-11 Accepted ADR-0005 Configuration is held in typed objects Accepted ADR-0006 Environment variables are only read during bootstrap Accepted ADR-0007 MySQL and MariaDB are the default database Accepted ADR-0008 Database access is built directly on PDO Accepted ADR-0009 The panel runs as a FrankenPHP worker in a single binary Accepted ADR-0010 Configuration files are TOML Accepted ADR-0011 Identifiers are ULIDs generated in PHP Accepted ADR-0012 Modules are installed with Composer used as a library Accepted ADR-0013 Core features are modules Accepted ADR-0014 Class-level attributes are memoised as presence flags Accepted ADR-0015 Dependencies are locked and Composer is pinned Accepted ADR-0016 PostgreSQL 16 is the only supported database Accepted ADR-0017 SQL is produced by a compiler, not by the query objects Accepted ADR-0018 HTTP messages are bespoke, not PSR-7 Accepted ADR-0019 Twig is the template engine Accepted ADR-0020 Resolution data is not memoised per parameter Accepted ADR-0021 All file access goes through Flysystem Accepted ADR-0023 Replace MySQL and MariaDB with PostgreSQL Accepted ADR-0029 Require a binding for named and qualified resolutions Accepted