Admin::register_rest_routes used bare class strings like
'GlobalController', so class_exists() failed after the namespace move
and no aksrt/v1 settings/banner/schema routes registered (SPA 404).
Compose UI and board search already send aksrt_forum_plate post IDs as
board_id, but create_topic still validated aksrt_forum_board term IDs and
never wrote _aksrt_plate_id — so real plates failed with 版块不存在.
Validate/store under the plate model (and fix move_board the same way).
Bare class_exists('Balance') looks up global Balance, always false
under AKSRT\* namespaces → REST 403 on balance exchange and friends.
Rewrite string checks to AKSRT\{Domain}\{Class}.
PSR-4 split left GatewayInterface/Gateway duplicated across files;
loading BalanceGateway redeclared the interface. Strip sibling types
from polluted files (payment + widgets) so each path owns one type.
Move 288 types from global AKSRT_* + inc/classes manual requires into
namespace AKSRT\{Domain} under src/AKSRT/, wire composer.json psr-4,
and slim bootstrap to helpers/modules/hooks only. Split multi-class
widget/gateway files, update admin contract audit paths, and document
the layout in ADR/README.