neon-sprawl/server/NeonSprawl.Server/Game/Contracts/IContractTemplateRegistry.cs

16 lines
732 B
C#

using System.Diagnostics.CodeAnalysis;
namespace NeonSprawl.Server.Game.Contracts;
/// <summary>
/// Read-only access to validated <see cref="ContractTemplateRow"/> entries loaded at startup (<see cref="ContractTemplateCatalog"/>).
/// </summary>
public interface IContractTemplateRegistry
{
/// <summary>Attempts to resolve a contract template by stable <c>id</c>. Unknown ids and <c>null</c> return <c>false</c> without throwing.</summary>
bool TryGetDefinition(string? templateId, [NotNullWhen(true)] out ContractTemplateRow? definition);
/// <summary>Every loaded definition, ordered by <see cref="ContractTemplateRow.Id"/> (ordinal).</summary>
IReadOnlyList<ContractTemplateRow> GetDefinitionsInIdOrder();
}