docs: def to_json(self, filename, indent=2):
          """
          Return a JSON string of all model inputs and outputs.
  
          Parameters
          ----------
          filename : str or file
              Either the file name (string) or an open file (file-like object)
              where the data will be saved.
          indent : int, optional
              Indentation level for JSON output.
  
          Returns
          -------
          out : str
              JSON formatted output string.
  
          """
          d = self.to_dicts()
          if hasattr(filename, "write"):
              json.dump(d, filename, indent=indent)
          elif isinstance(filename, string_types):
              with open(os.path.expanduser(filename), "w") as f:
                  json.dump(d, f, indent=indent)
          else:
              raise ValueError("Unknown filename or file-object")