Using for_each in modules

I am using terraform version 0.14.3.
I have a module for creating an Azure Network Interface Card, as below:

resource "azurerm_network_interface" "nic" {

  name                = var.nic_name

  location            = var.location

  resource_group_name = var.rg_name

  ip_configuration {

    name                          = var.ipconfig_name

    subnet_id                     = var.subnet_id

    private_ip_address_allocation = "Dynamic"

  }

  tags = local.tags

}

Its output is defined as :

output "nic_id" {
     value = azurerm_network_interface.nic.id 
}

I am calling this module in this parent module:

module "NIC" {
  source = "./NIC"
  for_each = var.nics

  nic_name      = each.value.nic_name
  location      = "eastus2"
  rg_name       = "abc-test-rg"
  ipconfig_name = each.value.ipconfig_name
  subnet_id     = <subnet_id>
}

output "nic_ids" {
  value = [for k in module.NIC.nic_id : k.id]
} 

The NIC values are defined as below:

nics = {
  nic1 = {
    nic_name      = "abc-nic-1"
    ipconfig_name = "nic-1-ipconfig"
  }
}

I want to loop around the NIC output IDs, and want them displayed.
When I run above code, I get below error in terraform plan :

Error: Unsupported attribute

  on main.tf line 15, in output "nic_ids":
  15:   value = [for k in module.NIC.nic_id : k.id]
    |----------------
    | module.NIC is object with 1 attribute "nic1"

This object does not have an attribute named "nic_id".

How do I get around it ?

There are multiple instances of module.NIC which are referred using your var.nics iterator.

(meta-code - not tested)

output "nic_ids" {
  value = [for nics in var.nics : module.NIC[nics].id]
}

Thank you @tbugfinder !
I will give that a try.