docs: func (a *API) Setup() {
  	a.setServiceAliaseName()
  	a.setMetadataEndpointsKey()
  	a.writeShapeNames()
  	a.resolveReferences()
  
  	if !a.NoRemoveUnusedShapes {
  		a.removeUnusedShapes()
  	}
  
  	a.fixStutterNames()
  	a.renameExportable()
  	a.applyShapeNameAliases()
  	a.createInputOutputShapes()
  	a.renameAPIPayloadShapes()
  	a.renameCollidingFields()
  	a.updateTopLevelShapeReferences()
  	a.setupEventStreams()
  	a.findEndpointDiscoveryOp()
  	a.customizationPasses()
  
  	if !a.NoRemoveUnusedShapes {
  		a.removeUnusedShapes()
  	}
  
  	if !a.NoValidataShapeMethods {
  		a.addShapeValidations()
  	}
  
  	a.initialized = true
  }