@FeatureDescriptor(name = FEATURE_PROPERTIES)
            default boolean supportsProperties() {
                return supportsBooleanValues() || supportsByteValues() || supportsDoubleValues() || supportsFloatValues()
                        || supportsIntegerValues() || supportsLongValues() || supportsMapValues()
                        || supportsMixedListValues() || supportsSerializableValues()
                        || supportsStringValues() || supportsUniformListValues() || supportsBooleanArrayValues()
                        || supportsByteArrayValues() || supportsDoubleArrayValues() || supportsFloatArrayValues()
                        || supportsIntegerArrayValues() || supportsLongArrayValues() || supportsStringArrayValues();
            }
Determines if an {@link Element} allows for the processing of at least one data type defined by the
features.  In this case "processing" refers to at least "reading" the data type. If any of the
features on {@link PropertyFeatures} is true then this value must be true.
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java