Single templates

inactive:
{{ block "inactiveBrick" .DefaultColor }}
{{ end }}
raised:
{{ block "raisedBrick" .DefaultColor }}
{{ end }}
speaker:
{{ block "speakerBrick" .DefaultColor }}
{{ end }}
mark:
{{ block "markBrick" .DefaultColor }}
X
{{ end }}

For each type

{{ range .Bricks }}
for {{ .Name }}
{{ template "inactiveBrick" .ColorClass }} {{ template "raisedBrick" .ColorClass }} {{ template "speakerBrick" .ColorClass }} {{ template "markBrick" .ColorClass }}
{{ end }}

Now for BrickData taking parametrized template name

{{ block "brick" .ABrick }} {{ if eq .TemplateType "inactiveBrick" }} {{ template "inactiveBrick" .ColorClass }} {{ else if eq .TemplateType "raisedBrick" }} {{ template "raisedBrick" .ColorClass }} {{ else if eq .TemplateType "speakerBrick" }} {{ template "speakerBrick" .ColorClass }} {{ else if eq .TemplateType "markBrick" }} {{ template "markBrick" .ColorClass }} {{ end }} {{end}}

Now for a person

{{ block "personBlocks" .TestPerson }}
{{ range (bricksForPerson .) }} {{ template "brick" . }} {{ end }}

{{ .Name }}

{{ end }}

And now i'll want to get all persons for a room

{{ block "roomPeople" .ARoom }}
{{ range (personsFromRoom .) }} {{ template "personBlocks" . }} {{ end }}
{{end}}