logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Namespace Serenity.Localization.Installation.Settings.Editor.Hub.Catalog

    Classes

    SerenityHubCatalogGroup

    One named, ordered slice of catalog entries produced by SerenityHubCatalogGrouper — the unit a grouped Hub view renders as a single Foldout section (UX feedback round 4).

    SerenityHubCatalogGrouper

    Derives a display group for a catalog entry from its real MenuPath, so Create/Browse/Advanced can render grouped Foldout sections instead of one flat grid (UX feedback round 4) without a new catalog field to maintain — the existing Tools/Serenity/... menu taxonomy already encodes the domain.

    Rule: split the path after Tools/Serenity/. When the first remaining segment matches the entry's own SerenityHubCategory (the common case — a Create entry filed under Tools/Serenity/Create/Audio/...), the group is the next segment down ("Audio"), or GeneralGroupName when that category segment is immediately followed by the entry's own title with no intermediate segment between them. When the first segment does NOT match the category (an Advanced entry filed under its real home, e.g. Tools/Serenity/Docs/... or Tools/Serenity/Validate/...), the group is that first segment itself, regardless of how many more segments the path has. A path with only one segment after Tools/Serenity/ at all (no domain folder, e.g. Tools/Serenity/Clone Directory) has nothing to derive a group from and falls into GeneralGroupName.

    SerenityHubCatalogLookup

    Resolves catalog entries back from the handles the Hub's persisted personal state carries: a recent's MenuPath (§8, the only handle the launcher has at launch time) or a favorite's Id. A handle that no longer matches any catalog entry (the tool was renamed or removed since it was recorded) is silently skipped rather than surfaced as a broken row — recents/favorites are a convenience list, not a guarantee.

    SerenityHubToolCatalog

    The single source of truth for every catalog-driven Hub view (Create, Validate, Browse, Advanced) and for search. Every entry mirrors a real [MenuItem("Tools/Serenity/...")] declaration in the project except the entries excluded below — coverage is verified mechanically by SerenityCatalogStalenessValidator, not by a hardcoded count here.

    Excluded by product/structural decision, not drift: Tools/Serenity/Export Package (Asset Store) and Tools/Serenity/Refresh Upgrade Artifacts (dev-only, being de-shipped separately), and Tools/Serenity/Hub itself (would create a recursive self-launch card). The isValidateFunction: true overload on ClassVirtualizer.cs's menu item collapses into the same entry as its non-validate sibling (Serenity.Localization.Installation.Settings.Editor.Hub.Catalog.SerenityHubToolCatalog.BuildCreateEntries, "Make Class Subclass-Friendly") — counted once, not twice.

    Tools/Serenity/Install Required Unity Packages and Tools/Serenity/Installation/Validate Installation are catalogued under Validate as open-tool cards (ValidatorKind = null): Home's status rows already deep-link into them, and neither fits the report+cache model (Install Packages mutates like Migration; Validate Installation has no RunAll-reachable report engine).

    The four "(JSON)" menu items (Validate/Project (JSON), Validate/Migration/Migrate to 1.3.0 (JSON), Create/UI/Theme Builder (JSON), Create/Services/Service Extension Creator (JSON)) are headless CI duplicates of an already-catalogued GUI tool, so they live under Advanced instead of their GUI sibling's category — the same treatment the design gives Validate/Project (JSON) as a "power-user duplicate".

    Tools/Serenity/Validate/Find FoundationSettings... is catalogued under Browse (product decision, UX feedback batch 9), NOT Validate where its own menu path lives — it is a lookup/search tool with no pass/fail concept, not a validator. This supersedes the original spec §5.2 open-tool-card placement; the menu path itself is unchanged since it still lives under the real Tools/Serenity/Validate/... menu.

    SerenityHubToolEntry

    One immutable catalog entry describing a real Tools/Serenity/... menu item: what it is, where it lives in the Hub sidebar, how to launch it, and how it participates in search. The sole source of truth for every catalog-driven Hub view — no view may hardcode its own tool list.

    Enums

    SerenityHubCategory

    The four tool-bearing Hub sidebar views a catalog entry can belong to. Home and Learn are deliberately absent — Home renders status/recents/favorites and Learn renders curated documentation, neither owns a slice of the tool catalog.

    In this article
    © 2026 Serenity. All Rights Reserved