CARD PAO-S (A3)  written 2026-09-26 00:47:53 -0700  -- BEFORE its first compile  (rule-28 strip test, diagnostic only, not a landing)
unit: source/ai/path_obstacle_avoidance   base: copies/pao12 (PAO-1 + PAO-2)
observed: six 3D->2D view casts '(real_point2d const *)' on real_point3d pointers: path_avoid_obstacles x4 (the two
  path_find calls: start_point, goal_point) and render_debug_obstacle_path x2 (&debug_obstacle_path_start_point,
  &debug_obstacle_path_goal_point).
evidence: D = /Od 0x4cafb0 (path_avoid_obstacles; 'obstacle path failure!') pushes pointer locals [ebp-0x34]
  (start_point) and [ebp-0x38] (goal_point) unchanged into path_find (0x4cba00) at 0x4cb30f/0x4cb307 and
  0x4cb371/0x4cb369; /Od 0x4cc6b0 (render_debug_obstacle_path, caller of path_new 0x4cbef0 and path_iterate
  0x4cbc00) pushes the global addresses 0xae9f84 / 0xae9f94 unchanged into path_new. Prefix: real_point3d {x,y,z}
  has real_point2d {x,y} as prefix.
correction under test: remove all six casts (diagnostic strip).
prediction: byte-inert (keyed_diff vs pao12.obj: 0 changed/0 added/0 removed); /W3 gains exactly six C4133
  (incompatible pointer types) and nothing else.
decisive test: keyed_diff pao12 vs strip; w3 census diff.
