While working on #1313 I tried using ListUnmanaged for storing regenerateMeshList but it is inconsistent with lightRefreshList and hence requires duplication of deduplication code. Thus I decided to use List for now and batch refactor both in separate PR.
Moreover, regenerateMeshList and lightRefreshList are technically same thing, only reason why they have to be separate is that while iterating over regenerateMeshList you need to pass lightRefreshList to generateMesh and it technically can be modified (it won't be if entries are deduplicated, but can be) and this creates risk of invalidating iterator mid-iteration if we use one list instead of two.