#ifndef DIRECTOR_H #define DIRECTOR_H #include #include #include namespace smo { namespace director { class Director { public: Director() = default; ~Director() = default; /** EXPLANATION: * We allow SMO to prioritize negtrins over injected goals, so that it can * prioritize pain mitigation. We may decide to change this in the future. * * NB: Prioritizing negtrins is not the same as priortizing * self-preservation...at least we don't think so at the moment of writing. * It is definitely not desirable for SMO to prioritize self-preservation * over our injected goals. */ LruLifo negtrins; /** EXPLANATION: * These are goals injected by Mrntt. This is how Mrntt is able to inject * goals into the director. */ LruLifo injectedGoals; /** EXPLANATION: * These are goals chosen by the running mind. Director will always * prioritize injected goals over chosen goals. */ LruLifo chosenGoals; LruLifo postrins; LruLifo nontrins; }; } // namespace director } // namespace smo #endif // DIRECTOR_H