1. Provider names must be lowercase, at
most 64 characters, and contain only letters, digits, _, ., or -.
Priorities must be finite numbers between -100000 and 100000.
Register a server provider
domain is player, inventory, dispatch, or actions. Registration must
come from an external resource. It returns true on success or false plus a
stable, human-readable reason when the descriptor is rejected.
Every descriptor requires:
Player descriptor
kind may be success, error, warning, or inform. Treat unknown kinds as
informational.
Inventory descriptor
AddItem must return exactly true after accepting the operation. Return
false for a full inventory, unknown item, invalid metadata, or any other
rejection.
Dispatch descriptor
kind and payload into your dispatch resource. Return
false only when the report was rejected; nil counts as accepted after a
successful callback.
Action descriptor
_, and be at most 64 characters. RunAction must return exactly
true after completing or accepting the action.
Validate source, distance from npcCoords, permissions, identifiers, amounts,
and all params on the server. The action name is not authorization.
Unregister a server provider
Server status
apiVersionandruntimeEpoch;selected, a compact map by domain;domains, including each setting, state, reason, selected provider, and all registered candidates.
selected, disabled, unavailable, ambiguous, or degraded.
A callback failure degrades the selected provider; a later successful callback
clears the failure state.
Register a client interaction provider
Add and Remove are required. Progress is optional. Add must return
exactly true when registration succeeds. Progress returns exactly true
when completed and false when cancelled or failed.
watchedResources lists dependencies whose start/stop should trigger provider
reevaluation.
apiVersion, runtimeEpoch, setting, state, reason, and
the selected provider.

