Hi @Edmund this is because to be placed as user data a class must implement Savable*. (I may have strong opinions about this).
The Savable interface is for if you are saving a node into a .j3o for persistence, but if you are not using that functionality you can just implement Savable on your Anyclass but then just leave the methods of the Savable interface blank.
*Technically must implement Savable or be one of a small number of classes that are supported inherantly, like Maps and lists
A better way of doing this would ( in my opinion) be to store a reference to the Node in your “AnyClass” object, and then keep a a list and/or map of these objects. This way, you aren’t relying on the scene-graph and spatials/nodes to store your data, and can instead do something like anyClass = anyClassMap.get(node); to retrieve the object containing the important data that relates to that node.
I think yeah, you are right it’s a database design situation, it depends on your data, if it’s global (not related to particular node such as userScores or userAssets for instance), then yes using a global class might be the best option.