I'm not ignoring "known_models_for" but rather supporting more intelligent casting. If I have three known_models in my system: Audio, Video, and ExtendedVideo. I instantiate something with all three cmodels as a "Video" object and call "adapt_to_cmodel" on it. Why would I then cast that to be seen only as "Audio" rather than "ExtendedVideo" (or the more specific case of what I instantiated)?

Now, if I load it as ActiveFedora::Base, it will still randomly pick the first match of Audio when arguably "ExtendedVideo" might be better (impossible to tell what one means in this case though). But this was an attempt on adding more logical order to how casting operates.

I can add that test case for what happens when called fro, ActiveFedora::Base, thanks!