Because no versions of nsd match >2.3.1 <3.0.0 and nsd 2.3.1 depends on nsd_platform_interface ^1.6.0, nsd ^2.3.1 requires nsd_platform_interface ^1.6.0.
Because nsd_platform_interface 1.6.0 depends on uuid ^3.0.7 and no versions of nsd_platform_interface match >1.6.0 <2.0.0, nsd_platform_interface ^1.6.0 requires uuid ^3.0.7.
Thus, nsd ^2.3.1 requires uuid ^3.0.7.
Because no versions of nsd match >2.3.1 <3.0.0 and nsd 2.3.1 depends on nsd_platform_interface ^1.6.0, nsd ^2.3.1 requires nsd_platform_interface ^1.6.0. Because nsd_platform_interface 1.6.0 depends on uuid ^3.0.7 and no versions of nsd_platform_interface match >1.6.0 <2.0.0, nsd_platform_interface ^1.6.0 requires uuid ^3.0.7. Thus, nsd ^2.3.1 requires uuid ^3.0.7.