using aeqw89.DataKeys;
using Beam.Abstractions;
using Beam.Dynamic;

namespace Beam.Data {
    public record class Template : ITemplate {
        public required DataKey<ITemplate> Key { get; set; }
        public required StateChangerFactory Factory { get; set; }
        IStateChangerFactory ITemplate.Factory {
            get => Factory;
            set => Factory = (StateChangerFactory)value;
        }
        public required LinkBuilder Builder { get; set; }
        ILinkBuilder ITemplate.Builder {
            get => Builder;
            set => Builder = (LinkBuilder)value;
        }
    }
}
