package status_matrix

type StatusMatrix interface {
	IsActionFriendly2Status(status CurrentStatus, action string) bool
	CalculateNextStatusForAction(status CurrentStatus, action string) *NextStatus
	CalculateNextStatusIfActionDone(status CurrentStatus, action string) *NextStatus
	QueryAllowActions(currentStatus CurrentStatus) []string
}

type CurrentStatus struct {
	Status  string
	Actions []string
}

type NextStatus struct {
	Status  string
	Actions []string
}

type ActionStrategy string

const (
	Grab    ActionStrategy = "grab"
	Coexist ActionStrategy = "coexist"
)
