<?php
/**
 * Recording operation graph compiler contract.
 *
 * @package ScheduledChanges
 */

namespace ScheduledChanges\Application;

/**
 * Converts normalized selected recording intent into an operation graph draft.
 */
interface RecordingOperationGraphCompiler {
	/**
	 * Builds the provider-owned operation graph draft for one compilation request.
	 */
	public function compileGraph( RecordingPlanCompilationRequest $request ): RecordingPlanDraft;
}
