Interface LaravelUi5\Sdk\Partners\Contracts\PartnerScopeAttributeInterface

Marker contract every partner-scoping attribute implements so the applier can route them generically through their named resolver.

Sugar attributes (e.g. #[ScopedToActor], #[ScopedToOrgActors], future #[ScopedToHierarchy]) are thin declarative classes — they carry the keying column for the source query and name the resolver class that computes the partner-id set. The applier reads them via this interface only, never by concrete attribute type, which is what keeps the family open-ended: a new bridge ships as one resolver class plus one sugar attribute class — no applier rewrite, no entity-set rewrite.

Implementing classes are also expected to carry #[\Attribute(\Attribute::TARGET_CLASS)] so PHP's attribute reflection picks them up off ScopedAbstractEntitySet subclasses. The interface itself does not (and cannot) enforce that — it's a convention this contract relies on.

See https://laravelui5.com/sdk/security/scoped-entity-sets for the design rationale and LaravelUi5\Sdk\Partners\Contracts\ScopeResolverInterface for the resolver side of the contract.

Methods