Persistent systemd timer unit declaration backed by systemdkit rendering.
@type t() :: %HostKit.Systemd.Timer{ depends_on: [term()], install: keyword(), meta: map(), name: String.t(), timer: keyword(), unit: keyword() }
@spec new( String.t(), keyword() ) :: t()
@spec render(t()) :: String.t()
@spec unit_file(t()) :: struct()
@spec validate(t()) :: :ok | {:error, term()}