@type t() :: %{required(Antikythera.Time.t()) => Croma.PosInteger.t()}
@spec new(term()) :: Croma.Result.t(t())
@spec new!(any()) :: t()
@spec valid?(term()) :: boolean()