Interface for a content catalog that looks up maps, addons and entities by query or exact ID, returning a ContentCatalogItem with title and icon. Used by the host side to pick content for bans.
using SboxSuperuser.Core.Content;
namespace SboxSuperuser.Engine.Content;
/// <summary>The maps, addons and entities that could be banned, as the host can find them.</summary>
internal interface IContentCatalog
{
/// <summary>Up to take items of this kind matching the query; an empty query lists popular or all. Empty when the lookup fails.</summary>
Task<IReadOnlyList<ContentCatalogItem>> SearchAsync( string kind, string query, int take );
/// <summary>The title and icon for one exact ID, or null when it can't be found or the ID is a pattern.</summary>
Task<ContentCatalogItem> DescribeAsync( string kind, string id );
}