Saxonberg Server API
    Preparing search index...

    Detail entry with hierarchical structure.

    Aliases (multiple IDs for the same description, e.g. ['handle', 'doorknob']) are represented by multiple keys in the containing Map pointing to the same Detail object. To enumerate aliases for a given Detail, walk the parent Map and filter by identity — there is no per-Detail alias list.

    Per-sense slot map: each sense channel is an optional string. At least one slot must be populated when the Detail is created (the invariant lives on setDetail). The legacy description field has been retired; legacy authoring ({ description: "X" }) still round-trips by populating the vision slot at applier time.

    interface Detail {
        details: Map<string, Detail> | undefined;
        hearing?: string;
        smell?: string;
        taste?: string;
        touch?: string;
        vision?: string;
    }
    Index

    Properties

    details: Map<string, Detail> | undefined

    Nested child details (optional)

    hearing?: string

    Hearing-channel description text.

    smell?: string

    Smell-channel description text.

    taste?: string

    Taste-channel description text.

    touch?: string

    Touch-channel description text.

    vision?: string

    Sighted-channel description text.