As you can see, the view is expecting the view model but the controller is passing the ComponentViewModel even though I am passing the viewmodel in the Index()
I reviewed the documentation again (https://docs.kentico.com/k12sp/developing-websites/page-builder-development/developing-page-builder-sections) and noticed that the assembly I was using was for the basic controller and for the custom controller the assembly is slightly different.
The basic registration has params Identifier, Name, and PropertiesType in that order
whereas the custom controller has the params Identifier, ControllerType, Name
[assembly: RegisterSection("Column1Section",
typeof(Column1SectionController),
"1 Column section",
IconClass = "icon-square")]
was the fix,
and my controller class was not public - this wasnt a problem when using the basic registration, since the class was never called.
If I just changed the basic registration to
[assembly: RegisterSection("Column1Section",
"1 Column section",
typeof(Column1SectionController),
IconClass = "icon-square")]
I would get the error "Implementation of the section properties must implement ISectionProperties interface."
So it really needs to be in that order as indicated in the documentation.