{
  "article_slug": "2d-pathfinding-in-godot",
  "artifact": "Standalone Godot three-representation 2D pathfinding proof",
  "checks": [
    {
      "id": "grid_uses_negative_vector2i_region",
      "observed": {
        "region": "[P: (-2, -1), S: (14, 7)]"
      },
      "passed": true
    },
    {
      "id": "grid_world_cell_round_trip",
      "observed": {
        "start_cell": "-1,2"
      },
      "passed": true
    },
    {
      "id": "grid_path_contains_only_valid_non_solid_cells",
      "observed": {
        "path": [
          "-1,2",
          "0,2",
          "1,2",
          "2,2",
          "3,2",
          "3,1",
          "3,0",
          "3,-1",
          "4,-1",
          "5,-1",
          "6,-1",
          "7,-1",
          "8,-1",
          "8,0",
          "9,0",
          "9,1",
          "10,1",
          "10,2"
        ]
      },
      "passed": true
    },
    {
      "id": "grid_weighted_strip_changes_selected_route",
      "observed": {
        "bottom_strip_weight": 6.0,
        "unweighted_path": [
          "-1,2",
          "0,2",
          "1,2",
          "2,2",
          "3,2",
          "3,3",
          "3,4",
          "3,5",
          "4,5",
          "5,5",
          "6,5",
          "7,5",
          "8,5",
          "8,4",
          "8,3",
          "9,3",
          "9,2",
          "10,2"
        ],
        "weighted_path": [
          "-1,2",
          "0,2",
          "1,2",
          "2,2",
          "3,2",
          "3,1",
          "3,0",
          "3,-1",
          "4,-1",
          "5,-1",
          "6,-1",
          "7,-1",
          "8,-1",
          "8,0",
          "9,0",
          "9,1",
          "10,1",
          "10,2"
        ]
      },
      "passed": true
    },
    {
      "id": "graph_contains_six_authored_points",
      "observed": {
        "point_count": 6
      },
      "passed": true
    },
    {
      "id": "graph_edge_1_to_2_is_one_way",
      "observed": {
        "forward_connected": true,
        "reverse_connected": false
      },
      "passed": true
    },
    {
      "id": "graph_forward_route_uses_directed_edge",
      "observed": {
        "path": [
          0,
          1,
          2,
          5
        ]
      },
      "passed": true
    },
    {
      "id": "graph_reverse_route_respects_direction",
      "observed": {
        "path": [
          5,
          4,
          3,
          0
        ]
      },
      "passed": true
    },
    {
      "id": "invalid_grid_target_returns_named_diagnostic",
      "observed": {
        "path_size": 0,
        "status": "TARGET_SOLID",
        "target": "4,2"
      },
      "passed": true
    },
    {
      "id": "navigation_map_synchronizes_before_query",
      "observed": {
        "map_iteration": 1
      },
      "passed": true
    },
    {
      "id": "navmesh_route_is_non_empty_and_avoids_obstacle",
      "observed": {
        "route_avoids_obstacle": true,
        "route_point_count": 4
      },
      "passed": true
    },
    {
      "id": "off_mesh_target_is_normalized_to_map",
      "observed": {
        "closest_map_point": "(540.0, 380.0)",
        "off_mesh_target": "(468.0, 380.0)"
      },
      "passed": true
    },
    {
      "id": "navigationagent_moves_characterbody_parent",
      "observed": {
        "parent_distance": 90.0001983642578
      },
      "passed": true
    },
    {
      "id": "avoidance_changes_safe_velocity_not_global_route",
      "observed": {
        "desired_velocity": "(120.0, 0.000014)",
        "global_route_unchanged": true,
        "safe_velocity": "(116.3338, 14.37116)",
        "safe_velocity_changed": true
      },
      "passed": true
    },
    {
      "id": "packaged_project_reruns_cleanly",
      "passed": true,
      "observed": {
        "extracted_check_count": 14,
        "check_ids_match_workspace": true,
        "scene_smoke_passed": true,
        "engine": "4.7.1-stable (official)"
      }
    }
  ],
  "engine": {
    "build": "official",
    "hash": "a13da4feb8d8aefc283c3763d33a2f170a18d541",
    "hex": 263937,
    "major": 4,
    "minor": 7,
    "patch": 1,
    "status": "stable",
    "string": "4.7.1-stable (official)",
    "timestamp": 0
  },
  "failed": [],
  "failed_count": 0,
  "measurement_scope": "Correctness and behavior verification only; no performance, throughput, or allocation claim.",
  "passed": true,
  "passed_count": 15,
  "proof_boundary": {
    "performance": "No fastest-system or benchmark conclusion is made.",
    "product_scope": "This standalone article artifact is not a claim about a released PathForge product API.",
    "verified_here": "AStarGrid2D cell routing, AStar2D authored directed topology, NavigationServer2D polygon routing, NavigationAgent2D parent movement, target normalization, and optional local avoidance."
  },
  "scene_smoke": {
    "navigation_ready": true,
    "passed": true,
    "runtime_report": {
      "avoidance_adjusted_safe_velocity": true,
      "global_route_unchanged_by_avoidance": true,
      "map_iteration": 1,
      "map_region_count": 1,
      "nav_polygon_count": 4,
      "normalized_route_start": "(138.0, 380.0)",
      "normalized_route_target": "(798.0, 380.0)",
      "parent_distance": 90.0001983642578,
      "parent_moved": true,
      "passed": true,
      "route_avoids_obstacle": true,
      "route_point_count": 4,
      "target_was_normalized": true
    }
  },
  "verified_at": "2026-07-19T16:47:43",
  "published_files": {
    "source_zip": {
      "path": "/downloads/pathfinding/2d-pathfinding-starter-godot-source.zip",
      "bytes": 11188,
      "sha256": "8ff236be11cf03bd0f4d24b4cd98da99aafd72a74007776f118324b0058877d7"
    },
    "demo_source": {
      "path_in_zip": "scripts/articles/pathfinding_2d_three_ways_demo.gd",
      "sha256": "e1f46f325c0d477a28416ed1866a975dda807aefd164ebf01bee308776c5e254"
    },
    "scene": {
      "path_in_zip": "scenes/articles/pathfinding_2d_three_ways_demo.tscn",
      "sha256": "2eb229c55f2d1e106373c56a0e9b7f5c8028cf50557680a3ec5abdca28f6b291"
    },
    "verifier_source": {
      "path_in_zip": "tools/verify_pathfinding_2d_three_ways.gd",
      "sha256": "1210e9a7b325e67eed57a21a414099ebd4b21ef0a33ad02ace4ad88812d888a1"
    }
  },
  "extracted_package_rerun": {
    "passed": true,
    "workspace_check_count": 14,
    "published_check_count": 15,
    "check_ids_match_workspace": true,
    "scene_smoke_passed": true,
    "engine": "4.7.1-stable (official)"
  }
}
