Initialized input plug declaration.
Specs store the plug module and initialized state separately so plug initialization happens once when possible, while run/3 stays focused on passing the input through the pipeline.
run/3
@type t() :: %Spectre.Input.Pipeline.Spec{module: module(), state: term()}