-
Notifications
You must be signed in to change notification settings - Fork 2
Catalog System
The Catalog System is the foundation of content discovery in Yamata Launcher.
It allows the application to display platforms and their games in a structured way, while remaining fully extensible through external sources.
The goal of the system is flexibility: Yamata includes built-in catalogs by default, but users and providers can extend or override them to fit any use case.
A catalog is a collection of games associated with one or more platforms.
Catalogs can:
- Add games to an existing platform
- Introduce entirely new platforms
- Extend or enrich existing content
- Be loaded from built-in data or external sources
All catalogs are merged internally to create the final content visible in the application.
Yamata Launcher includes built-in catalogs for multiple platforms and ecosystems.
These catalogs provide:
- Platform definitions (console, system, or environment)
- Default game lists
- Basic metadata for discovery
Built-in catalogs ensure the application works out of the box without requiring any configuration.
Users can extend the catalog system by adding external catalog sources.
External catalogs allow:
- Adding games to an existing platform (e.g., adding more PlayStation titles)
- Creating custom platforms (e.g., Homebrew, Custom Collections, Indie Packs)
- Organizing private or curated collections
- Integrating third-party content providers
External catalogs follow the JSON structure described in the External Sources documentation.
When a catalog is loaded:
- The platform identifier is checked.
- If the platform already exists:
- Games are merged into the existing platform.
- If the platform does not exist:
- A new platform is created.
- The platform becomes available in the Explore section.
This allows multiple catalogs to contribute content to the same platform.
The final content shown in the application is the result of merging:
- Built-in catalogs
- External catalog sources
- User-added content (when applicable)
Key principles:
- Platforms are grouped by their identifier.
- Games are added without removing existing entries.
- Multiple sources can contribute to the same platform.
- The system does not assume a single source of truth.
The Explore tab displays catalog content in two levels:
Platforms appear as categories representing:
- Consoles (NES, PlayStation, etc.)
- Systems (Windows, Android, Linux)
- Custom platforms added by external catalogs
Each platform represents the merged result of all catalogs contributing to it.
When selecting a platform:
- All games associated with that platform are displayed.
- Games from built-in and external catalogs appear together.
- Metadata such as title, images, and description are used for display.
The Explore tab is designed to present a unified experience regardless of the content source.
The Catalog System is designed to support a wide range of scenarios:
- Default console libraries
- Community-maintained catalogs
- Personal curated collections
- Private or local content sources
- Homebrew or unofficial platforms
- Specialized environments (arcade, kiosk, custom builds)
There are no restrictions on the number of catalogs or platforms that can be added.