Pointer to the next safe phase boundary.
@type t() :: %Jidoka.Turn.Cursor{ loop_index: integer(), metadata: map(), phase: (:start | :after_prompt | :before_effect | :review | :wait) | binary() }
@spec new(keyword() | map()) :: {:ok, t()} | {:error, term()}
@spec new!(keyword() | map()) :: t()
@spec schema() :: Zoi.schema()