Add property for telling apart skeleton entities from non-skeleton entities
Created by: uwx
Summary
Add a property, such as IsSkeleton, for telling apart skeleton entities from non-skeleton entities
Details
Currently the lib lacks a consistent way of exposing a flag to tell whether an entity is a skeleton (contains only valid Id and Discord properties) or complete, which ends up prompting very dirty and non-future-proof for detecting whether an entity has data, such as checking other arbitrary properties. This type of check depends heavily on Discord or the library not changing, otherwise a property which previously would've only been present on non-skeleton entities may no longer be the case in the future.
I thought about this property being a boolean that gets manually assigned everywhere, but this may be a flawed system as DiscordJson.PopulateObject could in theory be used to turn a skeleton object into one that holds data, without updating the flag. It could instead be an abstract property that is implemented by each entity as a computed property that looks up the existence of some other property which is guaranteed to not be present in skeleton entities and to always be present in non-skeleton entities.
Notes
Somewhat related to #583, as eradicating skeleton objects would make this issue irrelevant.