> Moreover, there are a lot of different technical decisions to improve stability, packaging experience, user experience, etc.
Such as?
From my minimal experience with the project, it was obvious that interpersonal conflict existed for some time between some of the R2 hackers, so I guess the charitable interpretation of the fork is that you guys for some reason couldn't stand hacking together with Pancake (the creator). I think that being honest about that would have conveyed more credibility than the shady way the fork was executed, full of corporatey PR-speak and overproduced Web pages.
1. Removal of the unstable, unmaintained code - e.g. WebUI, filesystems mounting (it was based on the ancient GRUB code).
2. Migrating from the copy-pasted code to using Meson subprojects, which made the update easier and packaging effortless.
3. Continuing to use the newshell (tree-sitter-based parser) instead of every command parsing itself manually (old code used giant switch cases that parsed arguments independently for every separate command basically).
4. Not in the FAQ but also the removal of `r_core_cmd()` calls that were calling the commands directly in the code instead of using proper APIs. It's still work in progress but we removed almost a half of such calls and will continue until 99% of them are removed.
5. We also focus on better performance and general ease of use as a library - better code documentation, better APIs, unit and API integration tests.
6. While Projects existed in the original project they were just a sequence of the commands, while Rizin migrated to the completely different concept of snapshot serialization and storing it as a KV (Key-Value) database.
If you compare the code the difference compounded significantly already.