{"version":"2.1.246","anchor":"internal-fact-store-gains-variable-binding-threshold-trigger","canonical_anchor":"internal-fact-store-gains-variable-binding-threshold-trigger","heading":"Internal fact store gains variable binding, threshold triggers and budgets","tier":"internal","area":"Workflows","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.246\/e\/internal-fact-store-gains-variable-binding-threshold-trigger","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.246","markdown":"### Internal fact store gains variable binding, threshold triggers and budgets\n\nThe internal fact store gained variable binding, count-threshold triggers and budget waiting.\n\n**What**\n\nThe internal `world` store, a fact and subscription engine not exposed to users, was substantially extended. Patterns can bind variables, subscriptions can fire on a count threshold, and work can be charged against budgets and made to wait for headroom.\n\n**Details**\n\n- Patterns bind with `v(\"x\")`; the parse error now reads that a pattern must be a JSON object, nested objects as subsets, arrays exact.\n- A subscription can use an `$atleast` form that fires once per binding group when enough matching rows exist.\n- Storing a budget fact requires a finite, non-negative numeric `units`.\n- Evaluation now has an admission step that waits for budget headroom and rejects with `retracted while waiting for budget` if cancelled first; spend is charged up the scope chain.\n- Pending work is tracked in an explicit in-flight set so admitted-but-not-started work is not double counted.\n\n**Evidence**\n\n`a {topic:'budget'} fact needs a finite, non-negative numeric `units``\n\n- Area: Workflows\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 3\/5"}