PlayerIsAdminAccessFact
Whether the player has admin permission, from PermissionService. Pre-registered by AccessDataService, so every game has it without asking.
AccessFeature.anyOf("chapters", { AccessFactNames.PLAYER_IS_ADMIN, "ownsGame" })
Registered at AccessFactPriority.BUILT_IN -- the bottom -- so anything a game registers under the same name outranks it. A game with its own idea of who counts as staff layers over this rather than fighting it.
Why this is not one shared require
PermissionService lives in permissionprovider/src/Server and PermissionServiceClient in
.../src/Client, and neither replicates to the other realm. So the realm is picked here, once, and
both branches answer the same question under the same fact name. That is the shape every
server-resolved fact has to take: same name in both realms, or the client sits unresolved forever and
every feature declaring the fact never settles there.
Functions
new
Constructs the fact, resolving the permission service for whichever realm this is.