I can see incorrect relationship in your gantt models.
Gnt.model.Project extends from Gnt.model.Task so that if you see the entity relationship both having inheritance relationship. Project inherits from Task. This is completely wrong in actual project management scenarios.
The project should be the unique entity and Project Has Tasks. In your case Project Is-a Task. Project has lot of unique properties than task. basically in the json data should be comes like
[
{
"calenders" : ...,
"dependecies": ..,
"assignments": ..,
"resources": ..,
"tasks": ..,
"projects": ..,
}
]
I cann see only hrd flag you used to differentiate project is
"TaskType" - inside task property and this value always takes "Gnt.examples.advanced.model.Project"
then this task considered as project in styles
However the logic fails to mapping project and Task as objects.