Fix const on property type arrays, add a few more required-essential props
diff --git a/src/read.c b/src/read.c
index da4f8d5..d236d30 100644
--- a/src/read.c
+++ b/src/read.c
@@ -1471,7 +1471,7 @@
             // Copy property to item
             avifProperty * srcProp = &meta->properties.prop[propertyIndex];
 
-            static const char * supportedTypes[] = { "ispe", "auxC", "colr", "av1C", "pasp", "clap", "irot", "imir", "pixi" };
+            static const char * const supportedTypes[] = { "ispe", "auxC", "colr", "av1C", "pasp", "clap", "irot", "imir", "pixi" };
             size_t supportedTypesCount = sizeof(supportedTypes) / sizeof(supportedTypes[0]);
             avifBool supportedType = AVIF_FALSE;
             for (size_t i = 0; i < supportedTypesCount; ++i) {
@@ -1485,8 +1485,19 @@
                     // Verify that it is legal for this property to not be flagged as essential. Any
                     // types in this list are *required* in the spec to be flagged as essential when
                     // associated with an item.
-                    static const char * essentialTypes[] = {
-                        "av1C" // AVIF: Section 2.2.1: "This property shall be marked as essential."
+                    static const char * const essentialTypes[] = {
+                        // AVIF: Section 2.2.1: "This property shall be marked as essential."
+                        "av1C",
+
+                        // HEIF: Section 6.5.11.1: "essential shall be equal to 1 for an 'lsel' item property."
+                        "lsel",
+
+                        // MIAF: Section 7.3.9: "All transformative properties associated with coded
+                        // and derived images required or conditionally required by this document
+                        // shall be marked as essential"
+                        "clap",
+                        "irot",
+                        "imir"
                     };
                     size_t essentialTypesCount = sizeof(essentialTypes) / sizeof(essentialTypes[0]);
                     for (size_t i = 0; i < essentialTypesCount; ++i) {