<?php

declare(strict_types=1);

namespace Drupal\flowdrop\Plugin\FlowDropNodeProcessor;

/**
 * Marker interface for node processors that begin a workflow.
 *
 * A start node is an entry point: nothing upstream fires it, so the reserved
 * trigger input port is not injected for it. Triggers are one kind of start
 * node (Trigger ⊂ Start), which is why TriggerNodeProcessorInterface extends
 * this marker — but a node can be a start node without being a trigger, so the
 * injector gates on this general marker rather than the trigger subtype.
 *
 * This interface is intentionally empty. It serves as a type marker used by
 * NodeMetadataResolver to decide whether to inject the reserved trigger input
 * port, detected via instanceof/is_subclass_of the same way
 * TriggerNodeProcessorInterface is, giving compile-time safety that
 * attribute-based detection would not.
 *
 * @see \Drupal\flowdrop\Plugin\FlowDropNodeProcessor\TriggerNodeProcessorInterface
 * @see \Drupal\flowdrop_node_type\Service\NodeMetadataResolver::buildForNodeType()
 *
 * @api
 */
interface StartNodeProcessorInterface {
}
