A DataAsset that implements GetPrimaryAssetId and has asset bundle support, which allows it to be manually loaded/unloaded from the AssetManager. Instances of native subclasses can be created directly as Data Assets in the editor and will use the name of the native class as the PrimaryAssetType. Or, blueprint subclasses can be created to add variables and then subclassed again by Data Only Blueprints that set those variables. With blueprint subclasses, use Data Only Blueprints (and not Data Asset instances) to properly handle data inheritance and updating the parent class.