class_docstr: A node in a DAG. These should be immutable.
class_docstr_tok: ["A","node","in","a","DAG",".","These","should","be","immutable","."]
docstr: When the node is represented in a visualization, the properties to display with it.
docstr_tok: ["When","the","node","is","represented","in","a","visualization",",","the","properties","to","display","with","it","."]
code: def displayed_properties(self) -> List[DisplayedProperty]:
      """When the node is represented in a visualization, the properties to display with it."""
      return [
          DisplayedProperty("description", self.description),
          DisplayedProperty("node_id", self.node_id),
      ]
  
imports: from __future__ import annotations
  import html
  import logging
  import textwrap
  from abc import ABC, abstractmethod
  from dataclasses import dataclass
  from typing import Any, Generic, List, Sequence, TypeVar
  import jinja2
  from metricflow.dag.id_generation import IdGeneratorRegistry
  from metricflow.dag.id_prefix import IdPrefix
  from metricflow.dag.prefix_id import PrefixIdGenerator
  from metricflow.visitor import VisitorOutputT
label_desc: Use image node_id 4 for calling the DagNode obj's underlying member method code with example usage: obj.displayed_properties() and returns: list