#define MSP_GAME_DIRECTOR_H_
#include <memory>
+#include <optional>
#include <vector>
#include <msp/datafile/collection.h>
#include <msp/time/timedelta.h>
#include <msp/time/timestamp.h>
+#include "accessguard.h"
#include "eventbus.h"
#include "events.h"
#include "eventsource.h"
+#include "mspgame_api.h"
+#include "reflection.h"
namespace Msp::Game {
class Stage;
-class Director
+class MSPGAME_API Director
{
public:
using EventSource = Game::EventSource<Events::StageCreated, Events::StageActivated, Events::StageDeactivated>;
private:
+ std::optional<AccessGuard> access_guard;
+ Reflection::Reflector reflector;
DataFile::Collection &resources;
EventBus event_bus;
EventSource event_source;