All Known Subinterfaces:
CommandSpecification, ObservableAbstractHamsterCommandSpecification, ObservableAbstractTerritoryTileCommandSpecification, ObservableAddGrainsToTileCommandSpecification, ObservableAddWallToTileCommandSpecification, ObservableClearTileCommandSpecification, ObservableInitDefaultHamsterCommandSpecification, ObservableInitHamsterCommandSpecification, ObservableInitializeTerritoryCommandSpecification, ObservableMoveCommandSpecification, ObservablePickGrainCommandSpecification, ObservablePutGrainCommandSpecification, ObservableTurnLeftCommandSpecification, ObservableWriteCommandSpecification
All Known Implementing Classes:
AbstractHamsterCommandSpecification, InitHamsterCommandSpecification, MoveCommandSpecification, PickGrainCommandSpecification, PutGrainCommandSpecification, TurnLeftCommandSpecification, WriteCommandSpecification

public interface ObservableCommandSpecification
Read-only command specification, base interface for all other ObservableCommandSpecifications By itself, it does not provide anything to observe, however all game entities used by subinterfaces (like ObservableMoveCommandSpecification which provides an ObservableHamster) use the observable versions.
A common use case for ObservableCommandSpecifications are tests: ObservableLogEntry provides an ObservableCommandSpecification which can be used to find out after the execution what happened while executing the game. An example of this use case can be found at ObservableCommandSpecificationTest in the main module