Feature: Dynamic Column Range Calculation As a developer I want the tracker to calculate the optimal column range dynamically So that API calls are efficient and don't fetch unnecessary data Background: Given an authenticated sheets tracker Scenario: Calculate range for standard 3-column sheet Given a sheet with headers "Dataset Name, Status, Error" When I get the status of "wordnet" Then the API should use range "Sheet1!A:C" instead of "Sheet1!A:Z" Scenario: Calculate range with checkpoint columns Given a sheet with headers "Dataset Name, Status, Error, Last Shard, Total Rows" When I get the status of "wordnet" Then the API should use range "Sheet1!A:E" instead of "Sheet1!A:Z" Scenario: Calculate range with all columns including last updated Given a sheet with headers "Dataset Name, Status, Error, Last Shard, Total Rows, Skip Descriptions, Last Updated" When I get the status of "wordnet" Then the API should use range "Sheet1!A:G" instead of "Sheet1!A:Z" Scenario: Fallback to Z when no columns identified Given a sheet with headers "Unknown1, Unknown2, Unknown3" When I get the status of "wordnet" Then the API should use range "Sheet1!A:Z" as fallback Scenario: Calculate range for get_checkpoint with checkpoint columns Given a sheet with headers "Dataset Name, Status, Last Shard, Total Rows, Skip Descriptions, Last Updated" And a sheet with the following datasets | Dataset Name | Status | Last Shard | Total Rows | Skip Descriptions | Last Updated | | wordnet | IN PROGRESS | 5 | 1000 | 50 | 2026-01-30 | When I get checkpoint for "wordnet" at row 2 Then the checkpoint API should use range "Sheet1!A2:F2" instead of "Sheet1!A2:Z2" Scenario: Dynamic range for sparse column layout Given a sheet with headers "Dataset Name, Filler1, Filler2, Status, Filler3, Error, Filler4, Last Shard" When I get the status of "wordnet" Then the API should calculate max column index correctly And the API should use range up to column H Scenario: Dynamic range with only status column Given a sheet with headers "Dataset Name, Status" When I get the status of "wordnet" Then the API should use range "Sheet1!A:B" instead of "Sheet1!A:Z" Scenario: Dynamic range with only error column Given a sheet with headers "Dataset Name, Error" When I get the status of "wordnet" Then the API should use range "Sheet1!A:B" instead of "Sheet1!A:Z" Scenario: Range calculation handles None columns gracefully Given a sheet with headers "Dataset Name" When I get the status of "wordnet" Then the API should use range "Sheet1!A:Z" as fallback due to missing columns Scenario: Range calculation for checkpoint with partial columns Given a sheet with headers "Dataset Name, Last Shard" And a sheet with the following datasets | Dataset Name | Last Shard | | wordnet | 3 | When I get checkpoint for "wordnet" at row 2 Then the checkpoint API should use range "Sheet1!A2:B2" Scenario: Optimize API calls by avoiding unnecessary column fetches Given a sheet with headers "Dataset Name, Status, Error" And multiple datasets with data in columns A through C only When I get the status of "wordnet" Then no data from columns D through Z should be fetched And API bandwidth should be optimized