<?php

namespace Formatrica\Submission\Pipeline;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * One step of the submission pipeline. A stage reads/writes the shared context
 * and may throw a Submission_Exception to abort, or call $ctx->finish() to
 * short-circuit with a result. Most stages are capability-blind; cost/side-effect
 * stages (added by later Pro waves) check the Feature_Gate at execution time.
 */
interface Submission_Stage
{
    public function handle(Submission_Context $ctx): void;
}
