Implement read-only immutable container tag rule browsing using project full-path resolution and the GraphQL containerProtectionTagRules connection. Parse required immutable flags and opaque global IDs with generated DTOs, validate complete connections and cursor progression, scan all pages before reporting an empty immutable list, and distinguish null/inaccessible connections from empty nodes. Add a static project-ID-restorable route, registry entry, refreshable loading/data/empty/error states and localized scope/tier hints without inferring current tag access. Test API/model/repository/controller/widgets first, including malformed/partial data, cursor cycles, permission errors, account changes and viewport/theme coverage. Listing only; creation/deletion remain separate slices.
Implement read-only immutable container tag rule browsing using project full-path resolution and the GraphQL containerProtectionTagRules connection. Parse required immutable flags and opaque global IDs with generated DTOs, validate complete connections and cursor progression, scan all pages before reporting an empty immutable list, and distinguish null/inaccessible connections from empty nodes. Add a static project-ID-restorable route, registry entry, refreshable loading/data/empty/error states and localized scope/tier hints without inferring current tag access. Test API/model/repository/controller/widgets first, including malformed/partial data, cursor cycles, permission errors, account changes and viewport/theme coverage. Listing only; creation/deletion remain separate slices.