I’ll be using Dear Imgui for all UI needs during development.
Yes, dear Imgui is brilliant.
In-game editing of tiles isn’t necessary.
Sure it can be nice, but personally I don’t think anyone would be able to makeup time lost creating and in-game editor if they could use Tiled instead.
First, this statement only holds true, if features the game requires are fully satisfied by what Tiled provides - and it's not much, it's only the very basic primitives.
Second, this statement also ignores amount of time and effort it requires to write code which maps between data representation of Tiled and your game. This increases complexity significantly. In-game editors can easily avoid this cost entirely.
Third, it implies that time creating in-game editor is lost. I would argue that - for many games - creation of in-game editor is a fundamental part of making the game, because the generic editors simply don't cut it.
It also sort of implies that it takes a lot of time to create in-game editor, which is sort of only true - if the editor has to end up being end-user facing and pretty.
The "hard", time consuming parts of creating ingame editor are - 1) IMGUI and 2) Reflection.
If you have code-hotswapping, good IMGUI and Reflection, making in game editors are very easy, and low LoC endeavor with fantastic ability to iterate on it.
The ability to switch over editor and game with a single keypress is unparalleled.
The ability to add new entities and change structs and have them instantly appear in the editor while the game is running is unparalleled.
As for reflection, I have considered a few different ways of implementing and using reflection. After much consideration have decided it’s simply a waste of time, at least for this project. Serialization can be achieved by writing to/from disk routines using a reader/writer helper to place or read ints, floats, and strings. Anything else would be, in my opinion, over-engineering.
The problem with reflection systems is they are themselves huge dependencies. They also require continual maintenance and updating. They are code intrusive, demanding everyone that comes along to learn their peculiararities.
What you've written here is more like a set of arguments why C is one of the worst programming languages ever made.
It's not a good argument against reflection.
Reflection is of one the core, fundamental parts of programming. It so vitally important in game-development.