Interface LaravelUi5\Core\Ui5\Emit\Veto\VetoerInterface

A registered participant that votes to suppress (or lock) an artifact, pre-data, leaving the family's transformer untouched (introduced for the dashboard in Core Dashboard API v1.0 — see {@see https://laravelui5.com/core/backend/dashboard#visibility-the-veto-chain}).

A vetoer answers one question about one artifact — "should this render, for this actor, right now?" — and nothing else. It knows neither the other vetoers nor the tree. The {@see \LaravelUi5\Core\Ui5\Emit\Veto\VetoChain} composes all registered vetoers by union ({@see Disposition}), so N concerns (access, lifecycle, personalization) never coordinate: any one Hide prunes the artifact.

Registration is by container tag, not by subclassing the transformer. Each contributing package tags its vetoer with this interface's FQCN; Core builds the chain from app()->tagged(...). A Core-only app tags nothing → the chain is empty → every artifact is Shown (the no-op default). The canonical first consumer is the portal's PortalLifecycleVetoer (tier/state gating); the SDK's AccessVetoer joins the same chain when SDK access work lands.

Scope is pre-data, server-side only. "No data to display" is not a veto reason here: a card's data lives behind its lazily-fetched endpoint, unknowable at build time — empty-card suppression is a separate, deferred concern (the card endpoint is its enforcement site).

Extrinsic policy only. This contract is for external participants; a Core artifact must not implement it to gate itself on SDK/host policy (that would leak cross-layer concerns into a BSL Core artifact).

Methods