Class LaravelUi5\Core\Ui5\Emit\Veto\VetoChain

final
readonly

Folds the registered {@see VetoerInterface}s into a single {@see Disposition} per artifact, by most-restrictive-wins:

any HideHide (short-circuits) else any LockLock else Show

Composition is monotonic and order-independent — adding a vetoer can only ever hide/lock more, never reveal. An empty chain (the Core default, when nothing is tagged) returns Show for everything: the no-op that makes a Core-only dashboard prune nothing.

Built once per request from the container's tagged vetoers and injected into a family's transformer (the dashboard's {@see \LaravelUi5\Core\Ui5\Dashboard\DefaultDashboardTransformer} is the first consumer). This is emit-composition infrastructure: a verdict ("show this artifact, for this actor, now") is meaningful only inside the build pipeline. For the dashboard, the card endpoint is deliberately not a second enforcement site — a direct manifest fetch has no composition context, and direct-fetch authorization is the SDK access model's concern (an #[Access]-style attribute, cross-cutting all routable artifacts), not a re-run of this chain. See {@see https://laravelui5.com/core/backend/dashboard#visibility-the-veto-chain}.

Methods