code: def check_default_typing(
      schema: dict, path: str, ctx: LintContext
  ) -> Errors:
      if ctx.in_checks:
          return []
      if not isinstance(schema, dict) or "properties" not in schema:
          return []
  
      errors = []
  
      required = schema.get("required", [])
      for key, sub in schema["properties"].items():
          subpath = path + f".{key}"
          if (
              key in required
              and isinstance(sub, dict)
              and "default" in sub
          ):
              errors.append(
                  (subpath, "default provided for required value")
              )
          if (
              key not in required
              and isinstance(sub, dict)
              and "default" not in sub
          ):
              errors.append(
                  (
                      subpath,
                      "default not provided for non-required value",
                  )
              )
  
      return errors
  
imports: import argparse
  import json
  import os
  import re
  import sys
  from typing import Callable, List, Optional, Tuple, TypeVar, Union
label_desc: Use image node_id 6 for calling a global function with example usage: check_default_typing(schema, path, ctx) and returns: errors, list, list