docs: def validate_process_subtype(supertype_name, supertype, subtype_name, subtype):
      """Perform process subtype validation.
  
      :param supertype_name: Supertype name
      :param supertype: Supertype schema
      :param subtype_name: Subtype name
      :param subtype: Subtype schema
      :return: A list of validation error strings
      """
      errors = []
      for item in supertype:
          # Ensure that the item exists in subtype and has the same schema.
          for subitem in subtype:
              if item['name'] != subitem['name']:
                  continue
  
              for key in set(item.keys()) | set(subitem.keys()):
                  if key in ('label', 'description'):
                      # Label and description can differ.
                      continue
                  elif key == 'required':
                      # A non-required item can be made required in subtype, but not the
                      # other way around.
                      item_required = item.get('required', True)
                      subitem_required = subitem.get('required', False)
  
                      if item_required and not subitem_required:
                          errors.append("Field '{}' is marked as required in '{}' and optional in '{}'.".format(
                              item['name'],
                              supertype_name,
                              subtype_name,
                          ))
                  elif item.get(key, None) != subitem.get(key, None):
                      errors.append("Schema for field '{}' in type '{}' does not match supertype '{}'.".format(
                          item['name'],
                          subtype_name,
                          supertype_name
                      ))
  
              break
          else:
              errors.append("Schema for type '{}' is missing supertype '{}' field '{}'.".format(
                  subtype_name,
                  supertype_name,
                  item['name']
              ))
  
      return errors