code: func (sg *schemaGenContext) buildMapOfNullable(sch *GenSchema) {
  	outer := &sg.GenSchema
  	if outer == nil {
  		return
  	}
  	if sch == nil {
  		sch = outer
  	}
  	if sch.IsMap && (outer.IsAliased || outer.IsAnonymous) {
  		elem := sch.AdditionalProperties
  		for elem != nil {
  			if elem.IsPrimitive && elem.IsNullable {
  				sg.checkNeedsPointer(outer, nil, elem)
  			} else if elem.IsArray {
  				// override nullability of array of primitive elements:
  				// render element of aliased or anonyous map as a pointer
  				it := elem.Items
  				for it != nil {
  					if it.IsPrimitive && it.IsNullable {
  						sg.checkNeedsPointer(outer, sch, it)
  					} else if it.IsMap {
  						sg.buildMapOfNullable(it)
  					}
  					it = it.Items
  				}
  			}
  			elem = elem.AdditionalProperties
  		}
  	}
  }
docs: // buildMapOfNullable equalizes the nullablity status for aliased and anonymous maps of simple things,
  // with the nullability of its innermost element.
  //
  // NOTE: at the moment, we decide to align the type of the outer element (map) to the type of the inner element
  // The opposite could be done and result in non nullable primitive elements. If we do so, the validation
  // code needs to be adapted by removing IsZero() and Required() calls in codegen.