Facts

Pass a facts object from your host app. The widget reconciles on mount: when a fact is true, the matching step completes via the adapter with source: "fact".

factKey wins

Each item can set factKey. Lookup order: facts[factKey] if set, else facts[item.key].

{ key: "connect_billing", title: "Connect billing", factKey: "hasBilling" }
facts={{ hasBilling: true }}

n/a (inapplicable)

When a fact is n/a, the item is inapplicable and hidden. A boolean false does not mark the item inapplicable; it leaves stored progress and dependencies to decide the state. Inapplicable items do not block dependencies.

No duplicate events

If a step is already complete in storage, fact reconciliation does not emit a second onboard.item_completed. See completion.

Related: Progress · Adapter · Eligibility