code: func flagType(att *design.AttributeDefinition) string {
  	switch att.Type.Kind() {
  	case design.IntegerKind:
  		return "Int"
  	case design.NumberKind:
  		return "String"
  	case design.BooleanKind:
  		return "String"
  	case design.StringKind:
  		return "String"
  	case design.DateTimeKind:
  		return "String"
  	case design.UUIDKind:
  		return "String"
  	case design.AnyKind:
  		return "String"
  	case design.ArrayKind:
  		switch att.Type.ToArray().ElemType.Type.Kind() {
  		case design.NumberKind:
  			return "StringSlice"
  		case design.BooleanKind:
  			return "StringSlice"
  		default:
  			return flagType(att.Type.(*design.Array).ElemType) + "Slice"
  		}
  	case design.UserTypeKind:
  		return flagType(att.Type.(*design.UserTypeDefinition).AttributeDefinition)
  	case design.MediaTypeKind:
  		return flagType(att.Type.(*design.MediaTypeDefinition).AttributeDefinition)
  	default:
  		panic("invalid flag attribute type " + att.Type.Name())
  	}
  }
docs: // flagType returns the flag type for the given (basic type) attribute definition.