code: def reorder_props(props):
      """If "children" is in props, then move it to the front to respect dash
      convention, then 'id', then the remaining props sorted by prop name
      Parameters
      ----------
      props: dict
          Dictionary with {propName: propMetadata} structure
      Returns
      -------
      dict
          Dictionary with {propName: propMetadata} structure
      """
  
      # Constructing an OrderedDict with duplicate keys, you get the order
      # from the first one but the value from the last.
      # Doing this to avoid mutating props, which can cause confusion.
      props1 = [("children", "")] if "children" in props else []
      props2 = [("id", "")] if "id" in props else []
      return OrderedDict(props1 + props2 + sorted(list(props.items())))
  
imports: from collections import OrderedDict
  import copy
  import os
  from textwrap import fill, dedent
  from dash.development.base_component import _explicitize_args
  from dash.exceptions import NonExistentEventException
  from ._all_keywords import python_keywords
  from ._collect_nodes import collect_nodes, filter_base_nodes
  from .base_component import Component
label_desc: Use image node_id 10 for calling a global function with example usage: reorder_props(props) and returns: OrderedDict