Push pattern knobs into UI layer abstraction, not core