public List<String> getMemberNames() {
        List<String> result = memberNames;
        if (result == null) {
            result = ListUtils.copyOf(getAllMembers().keySet());
            memberNames = result;
        }
        return result;
    }
Returns an ordered list of member names based on the order they are
defined in the model, including mixin members.

<p>The order in which map key and value members are returned might
not match the order in which they were defined in the model because
their ordering is insignificant.

@return Returns an immutable list of member names.
smithy-model/src/main/java/software/amazon/smithy/model/shapes/Shape.java