What problem does it solve? When creating or editing a Connect procedure, a sign-in interceptor, an admin panel route guard, or a menu declaration, developers need a consistent access model. This rule defines the four kinds of access, the decorators that declare them, and how sections are gated, so every endpoint is closed by exactly one declaration and nothing is left open by default. ## Core Features & Use Cases - Four access kinds: by a right (@RequiresPermission('bookings:manage')), any signed-in person (@RequiresAuth), public (@PublicProcedure), and public with a read of the sign-in (@OptionalAuthProcedure). - Rights model: a user's rights are the preset's rights with personal overrides applied; rights are re-read from storage on every call, and silence about a right means refusal. - Gating rules: the right is checked by an interceptor before the procedure body, menu items and section addresses share one declaration, and public record-creating procedures get a rate limiter. - Use Case: When adding a new admin panel section for managing roles, apply this rule to declare roles:manage on the procedure, gate the child routes with the session guard, and close the menu item with the same right. ## Quick Start Apply the permissions rule to declare access on my new Connect procedure and gate the corresponding admin panel section.