using System.Diagnostics.CodeAnalysis;
namespace NeonSprawl.Server.Game.Crafting;
///
/// Read-only access to validated entries loaded at startup ().
///
///
/// E3.M2 (craft / refine): callers validating CraftRequest and resolving I/O rows should depend on this interface
/// rather than so recipe metadata stays centralized.
/// NEO-68: HTTP/read-model projections should depend on this interface rather than reaching into the catalog.
///
public interface IRecipeDefinitionRegistry
{
/// Attempts to resolve a recipe by stable id (see recipe-def.schema.json). Unknown ids and null return false without throwing.
bool TryGetDefinition(string? recipeId, [NotNullWhen(true)] out RecipeDefRow? definition);
/// Every loaded definition, ordered by (ordinal).
IReadOnlyList GetDefinitionsInIdOrder();
}