<?php

declare(strict_types=1);

namespace Drupal\flowdrop_workflow\Diagnostic\Mutation;

/**
 * Marker for the closed vocabulary of primitive edits on a workflow definition.
 *
 * Every remedy speaks only in these primitives, and a single
 * {@see \Drupal\flowdrop_workflow\Service\WorkflowMutatorInterface} is the only
 * thing that applies them to storage. Diagnostics describe fixes as these
 * descriptors; they never poke setNodes()/setEdges() themselves. A genuinely
 * new kind of edit becomes a new implementation of this interface — keeping the
 * set of possible mutations small and auditable.
 */
interface WorkflowMutationInterface {

  /**
   * A short, human-readable summary of this single edit.
   *
   * Used by the confirm interstitial to list exactly what will change.
   *
   * @return string
   *   The summary (e.g. 'Remove edge "abc"').
   */
  public function summary(): string;

}
