Further notes about the use of the different discriminator types about type : Used to match slices based on the type of the item. While it can be used with polymorphic elements such as Observation.value[x] , mostly it is used with Resource types on references, to apply different profiles based on the different resource type. Typical example: slice on the type of List.item.resolve() for the types Patient, RelatedPerson.
If slice on the type of List.entry.item.resolve() why don’t use the type of profile? I guess maybe because it’s only check the StructureDefinition.type of the targetProfile instead of conform the whole definition of the targetProfile. Is that right?