Is it currently possible? Because there is nothing on the Docs and the implementations in SpongeCommon use methods that are not available in the API.
Well, they’re used to implement it for stuff that’s not in the API either. Nothing is preventing you from making a DataHolder implementation; it’s just an interface.
The primary reason why the implementation of DataHolder on the four main target classes is because those four target classes have varying implementations that can’t be targeted with a sane manner (considering there’s over 100 DataManipulator
types). Ideally, it would be implemented as a component like system where you can blindly accept or deny certain DataManipulator
s, and then of course, implement it with a way to do something special based on those manipulators. Otherwise, the internal implementation is meant to only serve as a guidance how to implement DataHolder
on something that you cannot control the dynamic structure of.