code: func (b *Block) NoneRequired() *Block {
  	ret := &Block{}
  
  	if b.Attributes != nil {
  		ret.Attributes = make(map[string]*Attribute, len(b.Attributes))
  	}
  	for name, attrS := range b.Attributes {
  		ret.Attributes[name] = attrS.forceOptional()
  	}
  
  	if b.BlockTypes != nil {
  		ret.BlockTypes = make(map[string]*NestedBlock, len(b.BlockTypes))
  	}
  	for name, blockS := range b.BlockTypes {
  		ret.BlockTypes[name] = blockS.noneRequired()
  	}
  
  	return ret
  }
docs: // NoneRequired returns a deep copy of the receiver with any required
  // attributes translated to optional.