\newkeycommand{\spell[name=, type=, castingtime=, range=, components=, duration=, description=]}{
  \subtitlesection{\commandkey{name}}{\commandkey{type}}
  \vspace{-5pt} % subtitlesection artefact; topsep also changes bottom spacing.
  \begin{description}[font=\normalfont\textbf,noitemsep,topsep=1ex,leftmargin=1em]
    \item[Casting Time:]\commandkey{castingtime}
    \item[Range:]\commandkey{range}
    \item[Components:]\commandkey{components}
    \item[Duration:]\commandkey{duration}
  \end{description}
  \noindent
  \commandkey{description}
}

\newcommand{\spell}[7]{
  \subtitlesection{#1}{#2}
  \vspace{-5pt} % subtitlesection artefact; topsep also changes bottom spacing.
  \begin{description}[font=\normalfont\textbf,noitemsep,topsep=1ex,leftmargin=1em]
    \item[Casting Time:] #3
    \item[Range:] #4
    \item[Components:] #5
    \item[Duration:] #6
  \end{description}
  #7
}

Convert \spell to \newcommand macro
Convert \spell to \newcommand macro
