using System; namespace BFR.Operations { public class OperationType { public string Name { get; } public string Description { get; } public Func Create { get; } internal static OperationType Make() where T : Operation, new() { var pilot = new T(); return new OperationType(pilot.Name, pilot.Description, () => new T()); } private OperationType(string name, string description, Func create) => (Name, Description, Create) = (name, description, create); } }