Why is the type TypeList when MaxItems == 1?

New to provider code and I often see types be TypeList with a list of maps but the MaxItems is either set to 1 or absent but expects at max 1 item. There’s expand functions that then check it is a list of one map and then expands the data. Why is this? Why isn’t the type defined as map instead of list?

Example Type: terraform-provider-aws/resolver.go at main · hashicorp/terraform-provider-aws · GitHub

Example Expand: terraform-provider-aws/resolver.go at main · hashicorp/terraform-provider-aws · GitHub