text: #pragma once
  
  #include <type_traits>
  
  #include "RE/IPackageData.h"
  
  
  namespace RE
  {
  	template <class Parent>
  	class BGSNamedPackageData : public Parent
  	{
  	public:
  		static_assert(std::is_base_of<IPackageData, Parent>::value);
  
  
  		union Data
  		{
  			bool	b;
  			UInt32	i;
  			float	f;
  			void*	p;
  		};
  		STATIC_ASSERT(sizeof(Data) == 0x8);
  
  
  		// override (IPackageData)
  		virtual void	InitPackage() override;								// 01 - { return; }
  		virtual void	LoadPackage(TESFile* a_mod) override;				// 02
  		virtual void	Assign(IPackageData* a_other) override;				// 03 - { return; }
  		virtual bool	IsNotEqual(IPackageData* a_other) const override;	// 04
  
  
  		// members
  		Data data;	// ??
  	};
  }
  