Pattern miners follow a lightweight Experiment Line:
fit() validates the mining input and stores a schema signature
discover() runs the mining algorithm on data compatible with that schema
evaluate() summarizes pattern quality and filtering effects
Different miners may normalize their inputs differently (for example, item
transactions versus sequence transactions), but the base contract remains the
same.