Changes proposed in this pull request:
Part of the roadmap, each commit has a separate PR. Changes are made one at a time for easier review/readability, feel free to review within the related PR (if you wish) even if it's marked as merged.
Necessity
[x] Has the problem that is being solved here been clearly explained?
[x] If applicable, have various options for solving this problem been considered?
[x] For core PRs, does this need to be in core, or could it be in an extension?
[x] Are we willing to maintain this for years / potentially forever?
Confirmed
[ ] Frontend changes: tested on a local Flarum installation.
[ ] Backend changes: tests are green (run composer test).
[ ] Core developer confirmed locally this works as intended.
[ ] Tests have been added, or are not appropriate here.
Changes proposed in this pull request: Part of the roadmap, each commit has a separate PR. Changes are made one at a time for easier review/readability, feel free to review within the related PR (if you wish) even if it's marked as merged.
Necessity
Confirmed
composer test
).