Persistent systemd service unit declaration backed by systemdkit rendering.
@type t() :: %HostKit.Systemd.Service{ depends_on: [term()], install: keyword(), meta: map(), name: String.t(), service: 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()}