using System.Diagnostics.CodeAnalysis;
namespace NeonSprawl.Server.Game.Items;
///
/// Read-only access to validated entries loaded at startup ().
///
///
/// E3.M3 (inventory / craft / gather): callers granting or validating items should depend on this interface
/// rather than so stack limits and slot kinds stay centralized.
/// NEO-53: HTTP/read-model projections should depend on this interface rather than reaching into the catalog.
///
public interface IItemDefinitionRegistry
{
/// Attempts to resolve an item by stable id (see item-def.schema.json). Unknown ids and null return false without throwing.
bool TryGetDefinition(string? itemId, [NotNullWhen(true)] out ItemDefRow? definition);
/// Every loaded definition, ordered by (ordinal).
IReadOnlyList GetDefinitionsInIdOrder();
}