Could the last two patches be splitted to be shorter? I haven't read in detail yet, but in `sm6_parser_metadata_init()` it seems that the various cases could be added incrementally. In the following commit I guess `sm6_parser_find_named_metadata()` could initially be a stub and implemented later in a few commits.