OptionalColumnsWhether KnownColumns is the complete set. When a pipeline binds a
source whose columns we cannot enumerate (a Query, an external entity, an
upstream feature pipeline), this must be false — otherwise a perfectly
valid deny entry naming a column on that source would be wrongly rejected.
OptionalKnownEvery column name reachable across all bound sources.
OptionalKnownEvery source Ref bound to the pipeline.
What the caller knows about the pipeline's bound sources. Supplying columns enables the semantic check (a deny entry that matches no real column is almost certainly a typo); omitting them limits validation to the structural check, which needs no schema knowledge.