Saxonberg Server API
    Preparing search index...

    Public shape provided by SlottableMixin.

    fitsSlot is the candidate-side per-slot acceptance test consulted by Slotted.canOccupy after the slot-side mixin check passes. Bare Slottables (avatars sitting in chairs, riders mounting horses) default to "always fits" — WearableMixin and WieldableMixin override it to consult their per-body-plan claim records.

    Hoisted here (rather than living on a separate SlotFittable optional shape) so canOccupy is a virtual call against a known method, not a runtime "does this Stuff happen to have a fitsSlot field" duck-type check.

    interface Wearable {
        fitsSlot(host: Stuff & Slotted, slot: string): boolean;
        getClo(): Quantity<"clo">;
        getEligibleBodyPlans(): readonly string[];
        getOccupiedHost(): Stuff & Slotted | null;
        getSlotClaim(bodyPlanPath: string): readonly string[];
        getSlotClaims(): Readonly<Record<string, readonly string[]>>;
        onSlotReleased?(host: Stuff & Slotted, slotName: string): void;
        setClo(value: Quantity<"clo">): void;
        setSlotClaim(bodyPlanPath: string, slots: string[]): void;
        setSlotClaims(value: Record<string, string[]>): void;
    }

    Hierarchy (View Summary)

    Index

    Methods

    • Thermal insulation this garment contributes (the clo unit) when worn. Default 0 — a bare garment insulates nothing; a parka authors ~4. Summed body-wide by the Phase-2 thermoregulation layer's worn-slot walk and folded into effective ambient (widening the comfort band downward, shrinking fuel spend in the cold). Surface- weighted per-region coverage is a deferred fidelity tier — v1 is a simple additive sum.

      Returns Quantity<"clo">

    • Inverse lookup convenience: "what host am I currently in a slot of?" Returns the single host or null. Throws if the Slottable is in slots on multiple hosts simultaneously (which only matters for Wearable's multi-claim case — a gauntlet on each hand of the same wearer is one host; cross-host is the violation).

      Returns Stuff & Slotted | null

    • Optional witness fired by Slotted.vacate(slot, candidate) and Slotted.vacateSole(slot) immediately after the candidate is removed from the host's occupant set. Synchronous, in the same transaction as the vacate. v1's Mobile.onSlotReleased clears engagedMode for passthrough modes (ride / drive) so a dismounting rider's engagement clears automatically. Future witnesses (polymorph revert, status-clear, etc.) compose on the same shape.

      Parameters

      Returns void