What's the relationship between the schemas and the types used in Plotly.newPlot()?

Hello all

As a newbie just trying to get my head around Plotly for a project I’m doing at work:

I want to create a C# module (.NET Framework 4.8) which outputs JSON like what is shown in this page, which is what appears to be the “chart schema”:

… which seems to be (confusingly for me at this stage) different to the “plot schema” which appears here:
https://raw.githubusercontent.com/plotly/plotly.js/master/dist/plot-schema.json

As far as I can tell, the only strongly-typed implementation of this in .NET is in the Plotly.Blazor repo. Is there anywhere else where the “chart schema”(?) types used in the Plotly.newPlot are strongly typed/defined, so I can generate C# classes from them?

I can’t even find these in plotly.js (coming from .NET background, its dynamically-typed-ness is annoying) and every mention of the word “schema” in the plotly universe doesn’t include these types (like “data” being an array of traces, for example).

I’m sure I’m missing something simple so any help would be appreciated, thanks!