protected DialogToken([NotNull] DialogBuilder builder, DialogToken inputToken, [NotNull] string tokenName)
 {
     _builder    = builder;
     InputToken  = inputToken;
     TokenName   = tokenName;
     OutputToken = TokenName;
     Builder.AddToken(this);
 }
 public InputDialogToken([NotNull] DialogBuilder builder, [NotNull] string tokenName = "start") : base(
         builder, null, tokenName)
 {
 }
 public BarterResultToken([NotNull] DialogBuilder builder, [NotNull] PlayerDialogToken inputToken,
                          [CanBeNull] AcquireBarterablesCallback acquireBarterables) : base(builder, inputToken,
                                                                                            inputToken.TokenName + "_barter")
 {
     _context = new BarterContext(acquireBarterables);
 }
            //[NotNull] private readonly List<IPlayerDialogToken> _variants;

            public DecisionToken([NotNull] DialogBuilder builder, [NotNull] PartnerDialogToken inputToken)
                : base(builder, inputToken, inputToken.TokenName + "_decision")
            {
                //_variants = new List<IPlayerDialogToken>();
            }
 internal PlayerDialogToken([NotNull] DialogBuilder builder, DialogToken inputToken,
                            [NotNull] string tokenName)
     : base(builder, inputToken, tokenName)
 {
 }
 public PartnerDialogToken([NotNull] DialogBuilder builder, DialogToken inputTokenToken,
                           [NotNull] string tokenName)
     : base(builder, inputTokenToken, tokenName)
 {
 }