Not all Sparql language tokens are being supported by tags

The language I’m currently using in my editor is sparql mode from @codemirror/legacy-modes/mode/sparql

In the editor the sparql syntax returns tokens for “builtin” keywords, “variableName.local” and “variable” that’s defined in the sparql legacy mode to default to style using the variableName tag.

Is it possible to create more tags to support the differentiation of these different tokens. As currently when I change the “variableName” tag TagStyle it changes it for all three token types and does not differentiate them as being separate tokens.

My highlight style tags look like this:

export const AyuMarginHighlightStyle = HighlightStyle.define([
  { tag: tags.keyword, color: "#f580c5", class: "cm-keyword" },
  { tag: tags.string, color: "#e9c5f2" },
  { tag: tags.operator, color: "#ffde00" },
  { tag: tags.variableName, color: "#ffffff", class: "cm-localVariable" },
})

I would like to add more tags for example :

export const AyuMarginHighlightStyle = HighlightStyle.define([
  { tag: tags.builtin, color: "#f580c5", class: "cm-keyword" }, //for the "builtin" tokens
  { tag: tags.variableLocal, color: "#e9c5f2", class: "cm-variableLocal" },  //for the "variable.local" tokens
  { tag: tags.invalid, color: "#ffffff", class: "cm-invalid" },  //for the "variable" tokens
})

Default highlighting tags do not cover these. I had a read of CodeMirror 6: stream-syntax with custom tags but I could not find any help of examples. If there is any syntax to support more tags for extra tokens could you please show an example of how to add them. Thank you.