#pragma once

#include <string>
#include <nlohmann/json.hpp>

using json = nlohmann::json;

namespace warfactory {

class IElementData {
public:
    virtual ~IElementData() = default;

    virtual std::string getDataType() const = 0;

    virtual json serialize() const = 0;
    virtual void deserialize(const json& data) = 0;
};

} // namespace warfactory