One row of an Actions-tab ledger: an action's definition plus the render-time state the template needs. A plain object rather than the SohlAction itself — Handlebars resolves own properties, not prototype getters, so the availability state is read here and handed over flat.

interface ActionRow {
    available: boolean;
    data: sohl.entity.action.SohlAction.Data;
    unavailableReason: string;
}

Properties

available: boolean

Whether the action's trigger currently passes. false renders the run control disabled rather than live-but-inert (issue #1135).

The action's definition (title, shortcode, icon class, group).

unavailableReason: string

i18n key explaining the refusal; localized at render.