I saw some of your progress on Mastodon earlier.
The Bob Nystrom video was always one of my favorites. Breaking Dependencies: The SOLID Principles - Klaus Iglberger is another one I like which might be relevant to your C++ project. It might be late to apply those ideas now but it's something you can keep in minder for later. SOLID works well for game engines.
I apologize for not helping out much. I ended up struggling with my own projects too much to help out with others. These days I hesitate to work a project where the entities aren't implemented with an ECS pattern, including dropping many of my own projects. Entities not following the open-closed principle rapidly build up technical debt in my experience.
Serialization is a pain in C++. Some of the new reflection syntax might make things easier but that always seems far off. I've already recommended Cereal which is what I've used in the past. It supports polymorphism. It seems like you can't avoid some sort of boilerplate in C++ due to how classes work in C/C++.