//! The [`Target`] trait — the domain object a directive is matched against.
//!
//! Matching is *pushed into the target* rather than pulled out as data: the target decides which of
//! its names/scopes a [`Pattern`] is tested over. That keeps matching allocation-free and lets the
//! caller define alias semantics (e.g. a cross-name cluster `Foo.bar/Baz.bar` can test each alias
//! *and* the joined form) without the crate hardcoding any join convention.
use cratePattern;
/// A thing a [`Directive`](crate::core::Directive) can select.