"""Simulator: the world-model contract for control/optimization problems.
A placeholder taxonomy member today: simulators become the state-transition
backends of control environments (battery dispatch, microgrids) when those
land. The interface mirrors gymnasium so a simulator can back an env directly.
"""
from abc import ABC, abstractmethod
from emflow.models import Model
[docs]
class Simulator(Model, ABC):
[docs]
@abstractmethod
def reset(self, *, seed=None, options=None):
"""Reset to an initial state; return ``(state, info)``."""
[docs]
@abstractmethod
def step(self, action):
"""Advance one step; return ``(state, reward, terminated, truncated, info)``."""