Domains
Domains are deliberately independent. A player adapter must not also choose an
inventory, dispatch, action, or interaction implementation.
Selection
Providers declare a name, API version, priority, and optional availability callback.auto selects the single available provider with the highest
priority. A tie is ambiguous; HumaLike does not guess.
Provider callbacks run in the resource that registered them, so they can use
that resource’s local framework object and exports.
Ownership and lifecycle
- Provider names are owned by the registering resource.
- A different resource cannot replace that provider name.
- Re-registering the same name from the same resource is idempotent.
- Stopping the owner automatically removes its providers.
- Starting or stopping a watched dependency reevaluates availability.
- Restarting HumaLike creates a new runtime epoch and emits
humalike:integration:readyon both server and client.
What belongs in a bridge
- Framework-specific player lookups and job rules.
- Inventory calls and item allowlists.
- Dispatch event translation.
- Custom action validation and execution.
- Target-system or UI integration.
- Translation of server roleplay events to HumaLike’s neutral events.

