Declarative-content applier — consumes the YAML/template shape
{ <key>: { keywords?: string[], description: string } } and
(re-)populates this.details by calling setDetail for each
entry. Aliases come from the entry's keywords array, with the
map key as the first alias. Idempotent: resets the Map up
front so re-application during template re-clone replaces, not
appends. Quietly skips malformed entries.
Get all detail IDs recursively
Optionalparent: stringGet a detail's per-sense description text.
Three argument forms (deduced by the runtime, see the implementation):
getDetail(id) — returns the vision slot (back-compat).getDetail(id, sense) — returns the named sense slot.getDetail(id, sense, parent) — sense + nested parent path.getDetail(id, parent) — back-compat shape; parent is a
string that doesn't match a SenseChannel literal. Returns
the vision slot at the nested path.Returns null when the detail doesn't exist or the requested
sense slot is unpopulated.
Optionalparent: stringEnumerate top-level (or parent-scoped) detail entries, alias-
grouped by Detail object identity. Each entry bundles every key
that points at the same Detail. Used by the live-query
substrate's flat details projection.
Optionalparent: stringLook up the single alias-grouped entry containing key, or
null if no detail resolves at that key. Used by the live-
query substrate's focused-detail projection. Supports dotted
paths via the same resolveParent rules as getDetail.
Get all detail IDs at level
Optionalparent: stringMembership test for a single detail id at the given level.
Optionalparent: stringRemove detail(s)
Optionalparent: stringSet detail(s) — supports multiple IDs (aliases). Two shapes:
setDetail(ids, "description string", parent?) —
populates the vision slot. Preserved for older call sites.setDetail(ids, { vision, hearing, smell, touch, taste }, parent?) — per-slot population. At least one slot must be
non-empty; the per-field invariant rejects an all-empty map.Optionalparent: stringOptionalparent: string
Interface for objects with hierarchical details.