You seem to be really fast, it looks like a large part of Thor has already been ported
Concerning resources, keep in mind that
thor::ResourceCache is not meant to be a general-purpose resource management system, it is rather specific to the cases where 1. shared ownership is required and 2. duplicates shall be resolved automatically. Often, neither is necesssary, that's why I am going to implement a more lightweight alternative in the future. I don't know if it even makes sense to port
thor::ResourceCache directly to C#, as the lifetime and object ownership model is completely different from C++ -- however, the latter was an important point when I designed the resource caches. You should ask yourself whether a C# implementation would relieve the user and allow resources to be handled in a generic way (e.g.
thor::ResourceKey<R> can also be used independently), or if it would just make everything more abstract and complicated.
Concerning shapes, the classes
thor::Arrow and
thor::ConcaveShape can be considered more or less stable. Some functions in the
thor::Shapes namespace however might be removed -- shapes like pies are nice to show shapes in action, but they're not particularly useful as a reusable component of the Thor library. I might put them directly into an example.
Just to keep that in mind, not that you have to perform useless refactoring later. In general, the
progress list gives a rough idea on what may still change in Thor