[{"data":1,"prerenderedAt":1333},["ShallowReactive",2],{"navigation":3,"\u002Fdeveloper\u002Freach-ingest":70,"\u002Fdeveloper\u002Freach-ingest-surround":1330},[4,28,51],{"title":5,"path":6,"stem":7,"children":8,"icon":27},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17,22],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-rocket",{"title":18,"path":19,"stem":20,"icon":21},"Dashboard","\u002Fgetting-started\u002Fusage","1.getting-started\u002F3.usage","i-lucide-layout-dashboard",{"title":23,"path":24,"stem":25,"icon":26},"Glossary","\u002Fgetting-started\u002Fglossary","1.getting-started\u002F4.glossary","i-lucide-book-open",false,{"title":29,"icon":27,"path":30,"stem":31,"children":32,"page":27},"Features","\u002Ffeatures","2.features",[33,37,42,47],{"title":18,"path":34,"stem":35,"icon":36},"\u002Ffeatures\u002Fdashboard","2.features\u002F1.dashboard","i-lucide-gauge",{"title":38,"path":39,"stem":40,"icon":41},"Flow Bands","\u002Ffeatures\u002Fflow-bands","2.features\u002F2.flow-bands","i-lucide-activity",{"title":43,"path":44,"stem":45,"icon":46},"Run Pages","\u002Ffeatures\u002Frun-pages","2.features\u002F3.run-pages","i-lucide-map-pin",{"title":48,"path":49,"stem":50},"KMZ Import Guide","\u002Ffeatures\u002Fkmz-import","2.features\u002F4.kmz-import",{"title":52,"icon":27,"path":53,"stem":54,"children":55,"page":27},"Developer","\u002Fdeveloper","3.developer",[56,61,66],{"title":57,"path":58,"stem":59,"icon":60},"Architecture","\u002Fdeveloper\u002Farchitecture","3.developer\u002F1.architecture","i-lucide-layers",{"title":62,"path":63,"stem":64,"icon":65},"Public API","\u002Fdeveloper\u002Fapi","3.developer\u002F2.api","i-lucide-code",{"title":67,"path":68,"stem":69},"Reach Ingest Spec (v1)","\u002Fdeveloper\u002Freach-ingest","3.developer\u002F3.reach-ingest",{"id":71,"title":67,"body":72,"description":1324,"extension":1325,"links":1326,"meta":1327,"navigation":372,"path":68,"seo":1328,"stem":69,"__hash__":1329},"docs\u002F3.developer\u002F3.reach-ingest.md",{"type":73,"value":74,"toc":1310},"minimark",[75,80,84,91,101,106,111,130,136,147,151,167,171,174,276,279,283,314,326,330,335,338,416,421,707,710,714,717,727,734,738,745,749,1276,1280,1295,1299,1306],[76,77,79],"h1",{"id":78},"reach-ingest-spec-v1","Reach Ingest Spec — v1",[81,82,83],"p",{},"Public, versioned schema for pushing reach (river run) data into H2OFlows. Intended for partner data providers such as American Whitewater (AW), state agencies, and outfitter networks. Designed so partners can adapt their existing schemas without breaking changes on either side.",[81,85,86,90],{},[87,88,89],"strong",{},"Status:"," draft. Subject to revision until v1.0.0 lock.",[81,92,93,96,97],{},[87,94,95],{},"Schema URL:"," ",[98,99,100],"code",{},"https:\u002F\u002Fh2oflows.app\u002Fspecs\u002Freach-ingest-v1.schema.json",[102,103,105],"h2",{"id":104},"scope","Scope",[81,107,108],{},[87,109,110],{},"In scope for v1:",[112,113,114,118,121,124,127],"ul",{},[115,116,117],"li",{},"Reach geometry (LineString centerline, put-in → take-out)",[115,119,120],{},"Map features: rapids, access points (put-in\u002Ftake-out\u002Fparking\u002Fcampsite)",[115,122,123],{},"Descriptions, class ratings, gradient, length",[115,125,126],{},"Flow band thresholds (low \u002F running \u002F high)",[115,128,129],{},"Gauge associations",[81,131,132,135],{},[87,133,134],{},"Not in scope for v1"," (gated to v2+):",[112,137,138,141,144],{},[115,139,140],{},"Photos and media attachments",[115,142,143],{},"Trip reports \u002F user-generated content",[115,145,146],{},"Real-time flow readings (partners use their own pipeline)",[102,148,150],{"id":149},"required-fields-per-reach","Required fields per reach",[81,152,153,156,157,156,160,156,163,166],{},[98,154,155],{},"name",", ",[98,158,159],{},"geometry",[98,161,162],{},"class_max",[98,164,165],{},"region",". Everything else optional.",[102,168,170],{"id":169},"derivation-rules","Derivation rules",[81,172,173],{},"If a partner omits an optional field, H2OFlows fills it via existing services:",[175,176,177,190],"table",{},[178,179,180],"thead",{},[181,182,183,187],"tr",{},[184,185,186],"th",{},"Missing field",[184,188,189],{},"Derivation",[191,192,193,206,216,226,236,246,256,266],"tbody",{},[181,194,195,201],{},[196,197,198],"td",{},[98,199,200],{},"comids",[196,202,203,204],{},"NLDI flowline trace from ",[98,205,159],{},[181,207,208,213],{},[196,209,210],{},[98,211,212],{},"river_name",[196,214,215],{},"GNIS reverse lookup on put-in coord",[181,217,218,223],{},[196,219,220],{},[98,221,222],{},"basin",[196,224,225],{},"PostGIS containment vs HUC8 basins table",[181,227,228,233],{},[196,229,230],{},[98,231,232],{},"length_mi",[196,234,235],{},"Computed from geometry",[181,237,238,243],{},[196,239,240],{},[98,241,242],{},"gradient_fpm",[196,244,245],{},"Elevation profile via elevation service",[181,247,248,253],{},[196,249,250],{},[98,251,252],{},"gauges",[196,254,255],{},"Nearest USGS gauge within 25 mi of put-in (partner confirms)",[181,257,258,263],{},[196,259,260],{},[98,261,262],{},"put_in_name",[196,264,265],{},"GNIS lookup; fallback to \"Put-In\"",[181,267,268,273],{},[196,269,270],{},[98,271,272],{},"take_out_name",[196,274,275],{},"GNIS lookup; fallback to \"Take-Out\"",[81,277,278],{},"Partners can pre-fill these fields if they have better data than what derivation produces. Partner-provided values always win.",[102,280,282],{"id":281},"conflict-handling","Conflict handling",[81,284,285,286,289,290,156,293,156,296,156,299,302,303,305,306,309,310,313],{},"Every reach carries a ",[98,287,288],{},"source"," field (",[98,291,292],{},"curated",[98,294,295],{},"user",[98,297,298],{},"aw",[98,300,301],{},"partner:slug","). When an ingest payload's reach conflicts with an existing ",[98,304,292],{}," reach (matched by ",[98,307,308],{},"external_id"," or geometry proximity), the payload is written to a ",[98,311,312],{},"partner_reach_proposals"," table for human review by H2OFlows data stewards. The original curated row is not overwritten.",[81,315,316,317,319,320,322,323,325],{},"When an ingest reach matches an existing reach with the same ",[98,318,288],{},", the row is updated in place (idempotent upsert keyed on ",[98,321,288],{}," + ",[98,324,308],{},").",[102,327,329],{"id":328},"ingest-paths","Ingest paths",[331,332,334],"h3",{"id":333},"push-preferred","Push (preferred)",[81,336,337],{},"Partner POSTs payloads to H2OFlows on their own schedule.",[339,340,345],"pre",{"className":341,"code":342,"language":343,"meta":344,"style":344},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","POST \u002Fapi\u002Fv1\u002Fingest\u002Freaches\nAuthorization: Bearer \u003Cpartner_token>\nContent-Type: application\u002Fjson\n\n{\n  \"source\": \"aw\",\n  \"submitted_at\": \"2026-06-01T00:00:00Z\",\n  \"reaches\": [\n    { ... reach object ... }\n  ]\n}\n","http","",[98,346,347,355,361,367,374,380,386,392,398,404,410],{"__ignoreMap":344},[348,349,352],"span",{"class":350,"line":351},"line",1,[348,353,354],{},"POST \u002Fapi\u002Fv1\u002Fingest\u002Freaches\n",[348,356,358],{"class":350,"line":357},2,[348,359,360],{},"Authorization: Bearer \u003Cpartner_token>\n",[348,362,364],{"class":350,"line":363},3,[348,365,366],{},"Content-Type: application\u002Fjson\n",[348,368,370],{"class":350,"line":369},4,[348,371,373],{"emptyLinePlaceholder":372},true,"\n",[348,375,377],{"class":350,"line":376},5,[348,378,379],{},"{\n",[348,381,383],{"class":350,"line":382},6,[348,384,385],{},"  \"source\": \"aw\",\n",[348,387,389],{"class":350,"line":388},7,[348,390,391],{},"  \"submitted_at\": \"2026-06-01T00:00:00Z\",\n",[348,393,395],{"class":350,"line":394},8,[348,396,397],{},"  \"reaches\": [\n",[348,399,401],{"class":350,"line":400},9,[348,402,403],{},"    { ... reach object ... }\n",[348,405,407],{"class":350,"line":406},10,[348,408,409],{},"  ]\n",[348,411,413],{"class":350,"line":412},11,[348,414,415],{},"}\n",[81,417,418],{},[87,419,420],{},"Response:",[339,422,426],{"className":423,"code":424,"language":425,"meta":344,"style":344},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"results\": [\n    { \"external_id\": \"1234\", \"status\": \"created\", \"slug\": \"arkansas-river-browns-canyon\" },\n    { \"external_id\": \"1235\", \"status\": \"updated\", \"slug\": \"...\" },\n    { \"external_id\": \"1236\", \"status\": \"rejected\", \"reason\": \"geometry crosses state boundary; region mismatch\" },\n    { \"external_id\": \"1237\", \"status\": \"proposal\", \"proposal_id\": \"uuid-...\", \"reason\": \"matches curated reach; queued for steward review\" }\n  ]\n}\n","json",[98,427,428,433,451,514,569,625,699,703],{"__ignoreMap":344},[348,429,430],{"class":350,"line":351},[348,431,379],{"class":432},"sMK4o",[348,434,435,438,442,445,448],{"class":350,"line":357},[348,436,437],{"class":432},"  \"",[348,439,441],{"class":440},"spNyl","results",[348,443,444],{"class":432},"\"",[348,446,447],{"class":432},":",[348,449,450],{"class":432}," [\n",[348,452,453,456,459,462,464,466,468,472,474,477,479,482,484,486,488,491,493,495,497,500,502,504,506,509,511],{"class":350,"line":363},[348,454,455],{"class":432},"    {",[348,457,458],{"class":432}," \"",[348,460,308],{"class":461},"sBMFI",[348,463,444],{"class":432},[348,465,447],{"class":432},[348,467,458],{"class":432},[348,469,471],{"class":470},"sfazB","1234",[348,473,444],{"class":432},[348,475,476],{"class":432},",",[348,478,458],{"class":432},[348,480,481],{"class":461},"status",[348,483,444],{"class":432},[348,485,447],{"class":432},[348,487,458],{"class":432},[348,489,490],{"class":470},"created",[348,492,444],{"class":432},[348,494,476],{"class":432},[348,496,458],{"class":432},[348,498,499],{"class":461},"slug",[348,501,444],{"class":432},[348,503,447],{"class":432},[348,505,458],{"class":432},[348,507,508],{"class":470},"arkansas-river-browns-canyon",[348,510,444],{"class":432},[348,512,513],{"class":432}," },\n",[348,515,516,518,520,522,524,526,528,531,533,535,537,539,541,543,545,548,550,552,554,556,558,560,562,565,567],{"class":350,"line":369},[348,517,455],{"class":432},[348,519,458],{"class":432},[348,521,308],{"class":461},[348,523,444],{"class":432},[348,525,447],{"class":432},[348,527,458],{"class":432},[348,529,530],{"class":470},"1235",[348,532,444],{"class":432},[348,534,476],{"class":432},[348,536,458],{"class":432},[348,538,481],{"class":461},[348,540,444],{"class":432},[348,542,447],{"class":432},[348,544,458],{"class":432},[348,546,547],{"class":470},"updated",[348,549,444],{"class":432},[348,551,476],{"class":432},[348,553,458],{"class":432},[348,555,499],{"class":461},[348,557,444],{"class":432},[348,559,447],{"class":432},[348,561,458],{"class":432},[348,563,564],{"class":470},"...",[348,566,444],{"class":432},[348,568,513],{"class":432},[348,570,571,573,575,577,579,581,583,586,588,590,592,594,596,598,600,603,605,607,609,612,614,616,618,621,623],{"class":350,"line":376},[348,572,455],{"class":432},[348,574,458],{"class":432},[348,576,308],{"class":461},[348,578,444],{"class":432},[348,580,447],{"class":432},[348,582,458],{"class":432},[348,584,585],{"class":470},"1236",[348,587,444],{"class":432},[348,589,476],{"class":432},[348,591,458],{"class":432},[348,593,481],{"class":461},[348,595,444],{"class":432},[348,597,447],{"class":432},[348,599,458],{"class":432},[348,601,602],{"class":470},"rejected",[348,604,444],{"class":432},[348,606,476],{"class":432},[348,608,458],{"class":432},[348,610,611],{"class":461},"reason",[348,613,444],{"class":432},[348,615,447],{"class":432},[348,617,458],{"class":432},[348,619,620],{"class":470},"geometry crosses state boundary; region mismatch",[348,622,444],{"class":432},[348,624,513],{"class":432},[348,626,627,629,631,633,635,637,639,642,644,646,648,650,652,654,656,659,661,663,665,668,670,672,674,677,679,681,683,685,687,689,691,694,696],{"class":350,"line":382},[348,628,455],{"class":432},[348,630,458],{"class":432},[348,632,308],{"class":461},[348,634,444],{"class":432},[348,636,447],{"class":432},[348,638,458],{"class":432},[348,640,641],{"class":470},"1237",[348,643,444],{"class":432},[348,645,476],{"class":432},[348,647,458],{"class":432},[348,649,481],{"class":461},[348,651,444],{"class":432},[348,653,447],{"class":432},[348,655,458],{"class":432},[348,657,658],{"class":470},"proposal",[348,660,444],{"class":432},[348,662,476],{"class":432},[348,664,458],{"class":432},[348,666,667],{"class":461},"proposal_id",[348,669,444],{"class":432},[348,671,447],{"class":432},[348,673,458],{"class":432},[348,675,676],{"class":470},"uuid-...",[348,678,444],{"class":432},[348,680,476],{"class":432},[348,682,458],{"class":432},[348,684,611],{"class":461},[348,686,444],{"class":432},[348,688,447],{"class":432},[348,690,458],{"class":432},[348,692,693],{"class":470},"matches curated reach; queued for steward review",[348,695,444],{"class":432},[348,697,698],{"class":432}," }\n",[348,700,701],{"class":350,"line":388},[348,702,409],{"class":432},[348,704,705],{"class":350,"line":394},[348,706,415],{"class":432},[81,708,709],{},"Partner tokens are issued by H2OFlows; one token per partner. Tokens are revocable. Rate limit: 1000 reaches per request, 10 requests per minute.",[331,711,713],{"id":712},"pull-fallback","Pull (fallback)",[81,715,716],{},"If a partner cannot run a push pipeline, H2OFlows pulls from a partner-side endpoint on a schedule.",[81,718,719,720,723,724,726],{},"Partner exposes a GeoJSON FeatureCollection at a public URL where each Feature's ",[98,721,722],{},"properties"," conforms to the Reach object (with ",[98,725,159],{}," inlined as the Feature's geometry).",[81,728,729,730,733],{},"H2OFlows side runs a weekly cron via the ",[98,731,732],{},"aw-ingest"," CLI tool.",[102,735,737],{"id":736},"reference-implementation","Reference implementation",[81,739,740,741,744],{},"A reference Go adapter ships in the API repo at ",[98,742,743],{},"cmd\u002Faw-ingest\u002F",". Compiles to a single binary; reads partner JSON, validates against the schema, enriches missing fields, and POSTs to a configured H2OFlows endpoint. Partners are free to reuse, rewrite in their own stack, or ignore.",[102,746,748],{"id":747},"example-minimal-reach","Example minimal reach",[339,750,752],{"className":423,"code":751,"language":425,"meta":344,"style":344},"{\n  \"source\": \"aw\",\n  \"reaches\": [{\n    \"external_id\": \"1234\",\n    \"external_url\": \"https:\u002F\u002Fwww.americanwhitewater.org\u002Fcontent\u002FRiver\u002Fdetail\u002Fid\u002F1234\u002F\",\n    \"name\": \"Browns Canyon (Hecla Junction to Stone Bridge)\",\n    \"common_name\": \"Browns\",\n    \"river_name\": \"Arkansas River\",\n    \"region\": \"CO\",\n    \"class_max\": 3.5,\n    \"description\": \"Classic mile-by-mile pool-drop run...\",\n    \"geometry\": {\n      \"type\": \"LineString\",\n      \"coordinates\": [\n        [-106.0123, 38.7456],\n        [-106.0150, 38.7400],\n        [-106.0190, 38.7321]\n      ]\n    },\n    \"gauges\": [\n      { \"source\": \"usgs\", \"external_id\": \"07091200\", \"is_primary\": true }\n    ],\n    \"flow_ranges\": [\n      { \"label\": \"low\", \"max_value\": 600 },\n      { \"label\": \"running\", \"min_value\": 600, \"max_value\": 2500 },\n      { \"label\": \"high\", \"min_value\": 2500 }\n    ]\n  }]\n}\n",[98,753,754,758,777,791,810,830,849,869,888,907,923,943,957,979,993,1010,1025,1041,1047,1053,1066,1120,1126,1140,1177,1225,1259,1265,1271],{"__ignoreMap":344},[348,755,756],{"class":350,"line":351},[348,757,379],{"class":432},[348,759,760,762,764,766,768,770,772,774],{"class":350,"line":357},[348,761,437],{"class":432},[348,763,288],{"class":440},[348,765,444],{"class":432},[348,767,447],{"class":432},[348,769,458],{"class":432},[348,771,298],{"class":470},[348,773,444],{"class":432},[348,775,776],{"class":432},",\n",[348,778,779,781,784,786,788],{"class":350,"line":363},[348,780,437],{"class":432},[348,782,783],{"class":440},"reaches",[348,785,444],{"class":432},[348,787,447],{"class":432},[348,789,790],{"class":432}," [{\n",[348,792,793,796,798,800,802,804,806,808],{"class":350,"line":369},[348,794,795],{"class":432},"    \"",[348,797,308],{"class":461},[348,799,444],{"class":432},[348,801,447],{"class":432},[348,803,458],{"class":432},[348,805,471],{"class":470},[348,807,444],{"class":432},[348,809,776],{"class":432},[348,811,812,814,817,819,821,823,826,828],{"class":350,"line":376},[348,813,795],{"class":432},[348,815,816],{"class":461},"external_url",[348,818,444],{"class":432},[348,820,447],{"class":432},[348,822,458],{"class":432},[348,824,825],{"class":470},"https:\u002F\u002Fwww.americanwhitewater.org\u002Fcontent\u002FRiver\u002Fdetail\u002Fid\u002F1234\u002F",[348,827,444],{"class":432},[348,829,776],{"class":432},[348,831,832,834,836,838,840,842,845,847],{"class":350,"line":382},[348,833,795],{"class":432},[348,835,155],{"class":461},[348,837,444],{"class":432},[348,839,447],{"class":432},[348,841,458],{"class":432},[348,843,844],{"class":470},"Browns Canyon (Hecla Junction to Stone Bridge)",[348,846,444],{"class":432},[348,848,776],{"class":432},[348,850,851,853,856,858,860,862,865,867],{"class":350,"line":388},[348,852,795],{"class":432},[348,854,855],{"class":461},"common_name",[348,857,444],{"class":432},[348,859,447],{"class":432},[348,861,458],{"class":432},[348,863,864],{"class":470},"Browns",[348,866,444],{"class":432},[348,868,776],{"class":432},[348,870,871,873,875,877,879,881,884,886],{"class":350,"line":394},[348,872,795],{"class":432},[348,874,212],{"class":461},[348,876,444],{"class":432},[348,878,447],{"class":432},[348,880,458],{"class":432},[348,882,883],{"class":470},"Arkansas River",[348,885,444],{"class":432},[348,887,776],{"class":432},[348,889,890,892,894,896,898,900,903,905],{"class":350,"line":400},[348,891,795],{"class":432},[348,893,165],{"class":461},[348,895,444],{"class":432},[348,897,447],{"class":432},[348,899,458],{"class":432},[348,901,902],{"class":470},"CO",[348,904,444],{"class":432},[348,906,776],{"class":432},[348,908,909,911,913,915,917,921],{"class":350,"line":406},[348,910,795],{"class":432},[348,912,162],{"class":461},[348,914,444],{"class":432},[348,916,447],{"class":432},[348,918,920],{"class":919},"sbssI"," 3.5",[348,922,776],{"class":432},[348,924,925,927,930,932,934,936,939,941],{"class":350,"line":412},[348,926,795],{"class":432},[348,928,929],{"class":461},"description",[348,931,444],{"class":432},[348,933,447],{"class":432},[348,935,458],{"class":432},[348,937,938],{"class":470},"Classic mile-by-mile pool-drop run...",[348,940,444],{"class":432},[348,942,776],{"class":432},[348,944,946,948,950,952,954],{"class":350,"line":945},12,[348,947,795],{"class":432},[348,949,159],{"class":461},[348,951,444],{"class":432},[348,953,447],{"class":432},[348,955,956],{"class":432}," {\n",[348,958,960,963,966,968,970,972,975,977],{"class":350,"line":959},13,[348,961,962],{"class":432},"      \"",[348,964,965],{"class":919},"type",[348,967,444],{"class":432},[348,969,447],{"class":432},[348,971,458],{"class":432},[348,973,974],{"class":470},"LineString",[348,976,444],{"class":432},[348,978,776],{"class":432},[348,980,982,984,987,989,991],{"class":350,"line":981},14,[348,983,962],{"class":432},[348,985,986],{"class":919},"coordinates",[348,988,444],{"class":432},[348,990,447],{"class":432},[348,992,450],{"class":432},[348,994,996,999,1002,1004,1007],{"class":350,"line":995},15,[348,997,998],{"class":432},"        [",[348,1000,1001],{"class":919},"-106.0123",[348,1003,476],{"class":432},[348,1005,1006],{"class":919}," 38.7456",[348,1008,1009],{"class":432},"],\n",[348,1011,1013,1015,1018,1020,1023],{"class":350,"line":1012},16,[348,1014,998],{"class":432},[348,1016,1017],{"class":919},"-106.0150",[348,1019,476],{"class":432},[348,1021,1022],{"class":919}," 38.7400",[348,1024,1009],{"class":432},[348,1026,1028,1030,1033,1035,1038],{"class":350,"line":1027},17,[348,1029,998],{"class":432},[348,1031,1032],{"class":919},"-106.0190",[348,1034,476],{"class":432},[348,1036,1037],{"class":919}," 38.7321",[348,1039,1040],{"class":432},"]\n",[348,1042,1044],{"class":350,"line":1043},18,[348,1045,1046],{"class":432},"      ]\n",[348,1048,1050],{"class":350,"line":1049},19,[348,1051,1052],{"class":432},"    },\n",[348,1054,1056,1058,1060,1062,1064],{"class":350,"line":1055},20,[348,1057,795],{"class":432},[348,1059,252],{"class":461},[348,1061,444],{"class":432},[348,1063,447],{"class":432},[348,1065,450],{"class":432},[348,1067,1069,1072,1074,1076,1078,1080,1082,1085,1087,1089,1091,1093,1095,1097,1099,1102,1104,1106,1108,1111,1113,1115,1118],{"class":350,"line":1068},21,[348,1070,1071],{"class":432},"      {",[348,1073,458],{"class":432},[348,1075,288],{"class":919},[348,1077,444],{"class":432},[348,1079,447],{"class":432},[348,1081,458],{"class":432},[348,1083,1084],{"class":470},"usgs",[348,1086,444],{"class":432},[348,1088,476],{"class":432},[348,1090,458],{"class":432},[348,1092,308],{"class":919},[348,1094,444],{"class":432},[348,1096,447],{"class":432},[348,1098,458],{"class":432},[348,1100,1101],{"class":470},"07091200",[348,1103,444],{"class":432},[348,1105,476],{"class":432},[348,1107,458],{"class":432},[348,1109,1110],{"class":919},"is_primary",[348,1112,444],{"class":432},[348,1114,447],{"class":432},[348,1116,1117],{"class":432}," true",[348,1119,698],{"class":432},[348,1121,1123],{"class":350,"line":1122},22,[348,1124,1125],{"class":432},"    ],\n",[348,1127,1129,1131,1134,1136,1138],{"class":350,"line":1128},23,[348,1130,795],{"class":432},[348,1132,1133],{"class":461},"flow_ranges",[348,1135,444],{"class":432},[348,1137,447],{"class":432},[348,1139,450],{"class":432},[348,1141,1143,1145,1147,1150,1152,1154,1156,1159,1161,1163,1165,1168,1170,1172,1175],{"class":350,"line":1142},24,[348,1144,1071],{"class":432},[348,1146,458],{"class":432},[348,1148,1149],{"class":919},"label",[348,1151,444],{"class":432},[348,1153,447],{"class":432},[348,1155,458],{"class":432},[348,1157,1158],{"class":470},"low",[348,1160,444],{"class":432},[348,1162,476],{"class":432},[348,1164,458],{"class":432},[348,1166,1167],{"class":919},"max_value",[348,1169,444],{"class":432},[348,1171,447],{"class":432},[348,1173,1174],{"class":919}," 600",[348,1176,513],{"class":432},[348,1178,1180,1182,1184,1186,1188,1190,1192,1195,1197,1199,1201,1204,1206,1208,1210,1212,1214,1216,1218,1220,1223],{"class":350,"line":1179},25,[348,1181,1071],{"class":432},[348,1183,458],{"class":432},[348,1185,1149],{"class":919},[348,1187,444],{"class":432},[348,1189,447],{"class":432},[348,1191,458],{"class":432},[348,1193,1194],{"class":470},"running",[348,1196,444],{"class":432},[348,1198,476],{"class":432},[348,1200,458],{"class":432},[348,1202,1203],{"class":919},"min_value",[348,1205,444],{"class":432},[348,1207,447],{"class":432},[348,1209,1174],{"class":919},[348,1211,476],{"class":432},[348,1213,458],{"class":432},[348,1215,1167],{"class":919},[348,1217,444],{"class":432},[348,1219,447],{"class":432},[348,1221,1222],{"class":919}," 2500",[348,1224,513],{"class":432},[348,1226,1228,1230,1232,1234,1236,1238,1240,1243,1245,1247,1249,1251,1253,1255,1257],{"class":350,"line":1227},26,[348,1229,1071],{"class":432},[348,1231,458],{"class":432},[348,1233,1149],{"class":919},[348,1235,444],{"class":432},[348,1237,447],{"class":432},[348,1239,458],{"class":432},[348,1241,1242],{"class":470},"high",[348,1244,444],{"class":432},[348,1246,476],{"class":432},[348,1248,458],{"class":432},[348,1250,1203],{"class":919},[348,1252,444],{"class":432},[348,1254,447],{"class":432},[348,1256,1222],{"class":919},[348,1258,698],{"class":432},[348,1260,1262],{"class":350,"line":1261},27,[348,1263,1264],{"class":432},"    ]\n",[348,1266,1268],{"class":350,"line":1267},28,[348,1269,1270],{"class":432},"  }]\n",[348,1272,1274],{"class":350,"line":1273},29,[348,1275,415],{"class":432},[102,1277,1279],{"id":1278},"versioning-policy","Versioning policy",[112,1281,1282,1289,1292],{},[115,1283,1284,1285,1288],{},"Breaking changes ship as ",[98,1286,1287],{},"reach-ingest-v2"," etc; v1 stays supported for 12 months past v2 release.",[115,1290,1291],{},"Additive changes (new optional fields) can ship inside v1 without bumping major.",[115,1293,1294],{},"Schema URL is permanent — clients pin to a specific schema version.",[102,1296,1298],{"id":1297},"questions-partnership","Questions \u002F partnership",[81,1300,1301,1302,1305],{},"Contact via the H2OFlows GitHub org or ",[98,1303,1304],{},"ian@h2oflows.app"," to coordinate token issuance and pilot integration.",[1307,1308,1309],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":344,"searchDepth":351,"depth":357,"links":1311},[1312,1313,1314,1315,1316,1320,1321,1322,1323],{"id":104,"depth":357,"text":105},{"id":149,"depth":357,"text":150},{"id":169,"depth":357,"text":170},{"id":281,"depth":357,"text":282},{"id":328,"depth":357,"text":329,"children":1317},[1318,1319],{"id":333,"depth":363,"text":334},{"id":712,"depth":363,"text":713},{"id":736,"depth":357,"text":737},{"id":747,"depth":357,"text":748},{"id":1278,"depth":357,"text":1279},{"id":1297,"depth":357,"text":1298},"Public interoperability spec for partners pushing reach data into H2OFlows","md",null,{},{"title":67,"description":1324},"eSgo1rvvzlla0I9N_zwIXr-hEbkuDbBU0cGb81MEK7M",[1331,1326],{"title":62,"path":63,"stem":64,"description":1332,"icon":65,"children":-1},"H2OFlows public API reference — reaches, gauges, flow ranges, conditions.",1781108664809]