#pragma once

// Windows — winsock2.h must precede windows.h
#include <winsock2.h>
#include <windows.h>
#include <winternl.h>
#include <tlhelp32.h>

// Standard library
#include <atomic>
#include <algorithm>
#include <cstdint>
#include <chrono>
#include <cstdio>
#include <cstdlib>
#include <filesystem>
#include <fstream>
#include <format>
#include <memory>
#include <optional>
#include <set>
#include <string>
#include <string_view>
#include <thread>
#include <unordered_map>
#include <vector>

// Third party
#include <nlohmann/json.hpp>

// Project includes in dependency order
#include "common.hpp"
#include "utils/fnv1a.hpp"
#include "utils/address.hpp"
#include "core/memory.hpp"
#include "core/schema.hpp"
#include "sdk/datatypes/vector.hpp"
#include "sdk/entity_handle.hpp"
#include "sdk/datatypes/utl_ts_hash.hpp"
#include "sdk/interfaces/schema_system.hpp"
#include "sdk/interfaces/game_entity_system.hpp"
#include "sdk/interfaces/global_vars.hpp"
#include "core/interfaces.hpp"
#include "sdk/entity.hpp"
#include "core/sdk.hpp"
#include "features/features.hpp"
