Supported Entities
All except some ignored entities (e.g. area effect clouds, markers, leash knots, ... - view ignored entities) will emit light if they are holding or wearing a supported item or light level 15 if they are burning.
⚙️ Technical details
All light checks including item checking is done via predicates for performance reasons.
Items configured in the easily editable tag lists are checked on all not ignored entities in the armor.head, weapon.mainhand, weapon.offhand and since 1.20.5 contents slot.
Before 1.20.5, item, item frame, item display entities and in all versions falling block, block display and upcoming 1.21 ominous item spawner entities are checked by copying their item into the weapon.mainhand slot of an invisible armor stand with the static UUID c295ddee-4c15-4e5b-83ba-2fbce873a1d5. This helper entity is summoned and killed on demand and will not be stored in the world for simplicity reasons (e.g. in a force loaded chunk).
You can check out the responsible code here (for Minecraft 1.17-1.20.4 (precisely until 24w11a)), here (for Minecraft 1.20.5-1.20.6 using an overlay) and here (for Minecraft 1.21+ using the new folder names).
All other item checks for e.g. enchanted or amethyst trimmed armor items are done on all armor and weapon slots, including the armor.body and contents slot since 1.20.5.
Before 1.20.5, item, item frame and item display entities are again checked using the helper entity.
🔎 In game screenshot
Additionally, the following entities will always emit light.
If you want these entities to be changed, let me know by opening an issue here on GitHub or change it yourself.