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