A second language in the repository, and the question that matters more than the language.
the questions, asked before writing it:
who can change this in six months? two of three
where does it build? the same
pipeline
how is it versioned? with the
repository
what happens if it breaks? nothing. it is
a development
tool, not on
any production
path.
the last answer is what made it acceptable.
A second language is a maintenance decision rather than a technical one, and the mitigating factor is that this one is a development tool — a broken server costs somebody an afternoon and costs no customer anything. The protocol’s reference implementations are in TypeScript, which is the reason it is not PHP.