public MoveConditionInfo(MoveCondition moveCondition)
        {
            if (moveCondition == null)
            {
                throw new ArgumentNullException(nameof(moveCondition));
            }

            Type         = moveCondition.type;
            TokenType    = moveCondition.tokenType;
            BoolValue    = moveCondition.boolValue;
            ResourceType = moveCondition.resourceType;
            Comparison   = moveCondition.comparison;
            Val          = moveCondition.val;
            Inverse      = moveCondition.inverse;

            TokenDefinitionID = moveCondition.tokenDefinition?.id ?? -1;
        }
 public MoveConditionInfo(MoveConditionType type,
                          MoveConditionTokenType tokenType,
                          PuzzleResourceType resourceType,
                          NumberComparisonType comparison,
                          int tokenDefinitionID,
                          int val,
                          bool boolValue,
                          bool inverse)
 {
     Type              = type;
     TokenType         = tokenType;
     TokenDefinitionID = tokenDefinitionID;
     BoolValue         = boolValue;
     ResourceType      = resourceType;
     Comparison        = comparison;
     Val     = val;
     Inverse = inverse;
 }