code: def _get_all_property_mappings(encoder: MappingJSONEncoder, property_mappings: Iterable[JsonPropertyMapping],
                                 superclasses: Tuple[PropertyMapper]) -> List[JsonPropertyMapping]:
      
      mappings = []
      for superclass in superclasses:
          super_mappings = superclass._get_property_mappings(superclass)
          mappings.extend(super_mappings)
  
      # Add property mappings of own to end of the mappings list
      mappings.extend(property_mappings)
  
      # Note: It is very difficult to cull all property mappers that target the same properties, leaving only the ones
      # from the lowest class in the hierarchy. This is because such mappers may be encoded as functions. Given that such
      # overloading is unlikely to be used much and the cost of doing a mapping and then mapping again over the top of it
      # will likely be small, there will be no attempt of such a cull.
      return mappings
docs: Gets all of the property mappings from the given property mapper, considering the property mappings for self and the
      property mappings defined by the superclass.
      :param encoder: `self` when binded as class method
      :param property_mappings: mappings defined for the given encoder, excluding mappings defined by superclasses
      :param superclasses: superclasses of the given encoder. Property mappers in later superclasses may override the
      effects of property mappers defined by superclasses closer to the start of the list
      :return: all of the property mappings for the given encoder