app
AI Flow
Public Made by Adomby adom
Adom's AI Flow: a tool to help the AI follow all of the steps it takes to build a board.
← Commit history
0.1.31: native owned-zone transaction and verified refill readback
13 files changed
+202−81
Cargo.lock+10−10Cargo.toml+1−1README.md+2crates/adom-aiflow/src/main.rs+32−7crates/aiflow-bridge/examples/native_refill_readback.rs+12crates/aiflow-bridge/examples/native_zone_readback.rs+19crates/aiflow-bridge/src/lib.rs+68−62docs/acceptance-20260918/native-integration/black-viewer-regression.json+30docs/acceptance-20260918/native-integration/refill-readback.json+1docs/native-zone-landing.md+9docs/release-0.1.31.md+11package.json+1−1skills/adom-aiflow/SKILL.md+6Cargo.lock+10−10@@ -4,7 +4,7 @@ version = 4 [[package]] name = "adom-aiflow"-version = "0.1.30"+version = "0.1.31" dependencies = [ "aiflow-analyze", "aiflow-board",@@ -23,7 +23,7 @@ dependencies = [ [[package]] name = "aiflow-analyze"-version = "0.1.30"+version = "0.1.31" dependencies = [ "serde", "serde_json",@@ -32,7 +32,7 @@ dependencies = [ [[package]] name = "aiflow-board"-version = "0.1.30"+version = "0.1.31" dependencies = [ "serde", "serde_json",@@ -40,7 +40,7 @@ dependencies = [ [[package]] name = "aiflow-bridge"-version = "0.1.30"+version = "0.1.31" dependencies = [ "serde", "serde_json",@@ -48,7 +48,7 @@ dependencies = [ [[package]] name = "aiflow-copper"-version = "0.1.30"+version = "0.1.31" dependencies = [ "aiflow-board", "aiflow-grid",@@ -58,7 +58,7 @@ dependencies = [ [[package]] name = "aiflow-grid"-version = "0.1.30"+version = "0.1.31" dependencies = [ "aiflow-board", "serde",@@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "aiflow-place"-version = "0.1.30"+version = "0.1.31" dependencies = [ "aiflow-board", "serde",@@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "aiflow-pours"-version = "0.1.30"+version = "0.1.31" dependencies = [ "aiflow-board", "aiflow-copper",@@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "aiflow-router"-version = "0.1.30"+version = "0.1.31" dependencies = [ "aiflow-board", "aiflow-grid",@@ -96,7 +96,7 @@ dependencies = [ [[package]] name = "aiflow-run"-version = "0.1.30"+version = "0.1.31" dependencies = [ "serde", "serde_json",
Cargo.toml+1−1@@ -14,7 +14,7 @@ members = [ ] [workspace.package]-version = "0.1.30"+version = "0.1.31" edition = "2021" license = "MIT" repository = "https://wiki.adom.inc/adom/adom-aiflow"
README.md+2@@ -181,3 +181,5 @@ Latest maintenance: [0.1.28 lifecycle and native IPC readiness](docs/release-0.1 ## Optional thermal assemblies and signal screening Adom Fields 0.4.0 adds conducting heatsink blocks, copper thickness per layer and a Signals view for plane-overlap capacitance, differential-pair skew, reference coverage and microstrip estimates. AI Flow hints direct the AI to use explicit assembly and stackup data and keep unsupported cases visible. [Fields inputs, sources, limits and fixture](https://wiki.adom.inc/adom/adom-fields/files/docs/heatsinks-and-signals.md).++Native pour integration: [owned-zone transactions and asynchronous refill/readback](docs/native-zone-landing.md).
crates/adom-aiflow/src/main.rs+32−7@@ -1639,8 +1639,8 @@ fn main() { "route": {"engines": ["binary", "ai"], "default": "binary", "why": "the grid router (escapes, plane stubs, per-net vias, rip-up, Kelvin taps); an engine with its own router says take route=ai"}, "pour": {"engines": ["binary", "ai"], "default": "binary", "why": "zones from spec.pours: ground both sides, rails, load paths, the shunt return, thermal vias, Kelvin keepouts"}, "gate": {"engines": ["binary"], "default": "binary", "why": "KiCad DRC offline on the plan; inherited errors separated"},- "land": {"engines": ["binary"], "default": "binary", "why": "replay through the bridge as native undo steps, DRC before each"},- "measure": {"engines": ["binary"], "default": "binary", "why": "kicad_zone_state: filled copper per layer, the ablation metric"},+ "land": {"engines": ["binary"], "default": "binary", "why": "native bridge undo transactions with candidate DRC; pours use the complete explicitly owned zone plan without a delete/create fallback"},+ "measure": {"engines": ["binary"], "default": "binary", "why": "request refill once, then read two delayed matching native revision/copper snapshots; acknowledgement is not measurement and post-commit errors forbid blind replay"}, "analyze-current": {"engines": ["binary"], "default": "binary", "why": "IPC-2221 on the narrowest conductor per loaded net, pours and via capacity"}, "analyze-thermal": {"engines": ["binary"], "default": "binary", "why": "copper and vias at every hot tab in spec.hot"}, "finish": {"engines": ["binary"], "default": "binary", "why": "refuses until 0 unconnected, 0 new errors, pours landed, both analyses pass, copper measured"},@@ -1941,9 +1941,10 @@ fn main() { let zones = aiflow_pours::resolve_outline(&b, read_json(&zp)["zones"].as_array().unwrap_or(&Vec::new())); r.stage_start("land-pours", Some("binary"), None); let before = br.zone_state(&rb, true);+ if !Bridge::ok(&before) { err("cannot read settled zones before landing", &[before.to_string()]); } let mut owned: Vec<String> = r.data["ownedZoneIds"].as_array().into_iter().flatten().filter_map(|v|v.as_str().map(str::to_string)).collect(); // Legacy successful operation replies are evidence of creation, not an inference.- if let Some(groups)=r.outcomes().get("land-pours").and_then(|o|o["groups"].as_array()) {+ if let Some(groups)=r.outcomes().get("land-pours").and_then(|o|o["groups"].as_array()).filter(|_| r.data.get("ownedZoneIds").is_none()) { for g in groups.iter().filter(|g|g["ok"]==true) { for id in g["itemIds"].as_array().into_iter().flatten().filter_map(Value::as_str) { if !owned.iter().any(|x|x==id) { owned.push(id.to_string()); }@@ -1952,7 +1953,7 @@ fn main() { } let results = br.land_zones(&rb, &zones, *pause_ms, &owned); for (_,reply) in &results {- if Bridge::ok(reply) {+ if Bridge::ok(reply) || reply["deletionVerified"] == true { for id in reply["removedIds"].as_array().into_iter().flatten().filter_map(Value::as_str) { owned.retain(|x|x!=id); } } if Bridge::ok(reply) || reply["mutated"]==true {@@ -1965,7 +1966,9 @@ fn main() { if let Some((_, rep)) = results.iter().find(|(n, _)| n == "removed-stale") { eprintln!("{}", rep["message"].as_str().unwrap_or("")); }- let after = br.zone_state(&rb, true);+ let after = br.zone_state(&rb, results.iter().all(|(_, reply)| Bridge::ok(reply)));+ let mut results = results;+ if !Bridge::ok(&after) { results.push(("post-landing-readback".into(), after.clone())); } let failed: Vec<&(String, Value)> = results.iter().filter(|(_, rep)| !Bridge::ok(rep)).collect(); r.stage_end("land-pours", Some(json!({"groups": results.len(), "failed": failed.len()})), None); r.outcome("land-pours", json!({"before": before["filledAreaByLayerMm2"], "after": after["filledAreaByLayerMm2"], "coverageAfter": after["filledCoverageByLayerPercent"], "failed": failed.iter().map(|(n, _)| n.clone()).collect::<Vec<_>>(), "groups": results.iter().map(|(n, rep)| json!({"net": n, "ok": Bridge::ok(rep), "itemIds": rep["itemIds"], "errorCode": rep["errorCode"]})).collect::<Vec<_>>()}));@@ -1992,6 +1995,11 @@ fn main() { r.stage_end("measure", Some(json!({"filledAreaByLayerMm2": zs["filledAreaByLayerMm2"]})), None); write_json(&dir.join("zone-state.json"), &zs); r.log("artifact", json!({"step": r.data["currentStep"], "kind": "zone-state", "file": dir.join("zone-state.json").display().to_string()}));+ if !Bridge::ok(&zs) {+ r.outcome("measure", json!({"failed":true,"errorCode":zs["errorCode"],"reply":zs}));+ r.save().unwrap();+ err("native copper measurement did not settle", &["The refill request was not replayed. Inspect zone-state.json and the native board before retrying a read.".into()]);+ } r.outcome("measure", json!({"filledAreaByLayerMm2": zs["filledAreaByLayerMm2"], "coveragePercent": zs["filledCoverageByLayerPercent"], "zones": zs["zoneCount"]})); r.save().unwrap(); ok(&format!("copper kept per layer (KiCad's fills): {}; coverage {}", zs["filledAreaByLayerMm2"], zs["filledCoverageByLayerPercent"]), &["Next: adom-aiflow analyze current, analyze thermal.".into()]);@@ -2052,8 +2060,8 @@ fn main() { if o.get("land-pours").map(|p| !p["failed"].as_array().map(|a| a.is_empty()).unwrap_or(false)).unwrap_or(true) { missing.push("land pours (every planned pour accepted)".into()); }- if !o.contains_key("measure") {- missing.push("measure".into());+ if !measurement_usable(o.get("measure")) {+ missing.push("measure (successful native copper readback)".into()); } for k in ["analyze-current", "analyze-thermal"] { if o.get(k).and_then(|a| a["pass"].as_bool()) != Some(true) {@@ -2714,3 +2722,20 @@ fn main() { } } }++fn measurement_usable(value: Option<&Value>) -> bool {+ value.map(|v| v["failed"] != true && v["filledAreaByLayerMm2"].as_object().map(|a| !a.is_empty() && a.values().all(|n| n.as_f64().map(|x| x.is_finite() && x >= 0.0).unwrap_or(false))).unwrap_or(false)).unwrap_or(false)+}++#[cfg(test)]+mod measurement_gate_tests {+ use super::*;+ #[test]+ fn refuses_failed_or_missing_copper_measurement() {+ for v in [Value::Null, json!({"failed":true,"filledAreaByLayerMm2":{"F.Cu":12}}), json!({"filledAreaByLayerMm2":null}), json!({"filledAreaByLayerMm2":{}}), json!({"filledAreaByLayerMm2":{"F.Cu":-1}})] {+ assert!(!measurement_usable(Some(&v)));+ }+ assert!(!measurement_usable(None));+ assert!(measurement_usable(Some(&json!({"filledAreaByLayerMm2":{"F.Cu":12,"B.Cu":0}}))));+ }+}
crates/aiflow-bridge/examples/native_refill_readback.rsadded+12@@ -0,0 +1,12 @@+use aiflow_bridge::Bridge;+fn main() {+ let a: Vec<_> = std::env::args().collect();+ assert_eq!(a.len(),4,"target board ai-thread");+ let bridge=Bridge{target:a[1].clone(),ai_thread:a[3].clone()};+ let reply=bridge.zone_state(&a[2],true);+ println!("{}",reply);+ assert!(Bridge::ok(&reply));+ assert_eq!(reply["readbackEvidence"],"two delayed matching native snapshots after refill request");+ assert!(reply["revision"].is_string());+ assert!(reply["filledAreaByLayerMm2"].is_object());+}
crates/aiflow-bridge/examples/native_zone_readback.rsadded+19@@ -0,0 +1,19 @@+use aiflow_bridge::Bridge;+use serde_json::json;+fn main() {+ let args: Vec<_> = std::env::args().collect();+ assert_eq!(args.len(), 4, "target board-path ai-thread");+ let bridge = Bridge { target: args[1].clone(), ai_thread: args[3].clone() };+ let before = bridge.zone_state(&args[2], false);+ assert!(Bridge::ok(&before), "{before}");+ // No owned zones and no desired zones: native no-op, preserves every zone.+ let replies = bridge.land_zones(&args[2], &[], 0, &[]);+ assert_eq!(replies.len(), 1);+ let reply = &replies[0].1;+ assert!(Bridge::ok(reply), "{reply}");+ assert_eq!(reply["mutated"], false);+ assert_eq!(reply["undoSteps"], 0);+ let after = bridge.zone_state(&args[2], false);+ assert_eq!(before["revision"], after["revision"]);+ println!("{}", json!({"before":before,"nativeNoOp":reply,"after":after}));+}
crates/aiflow-bridge/src/lib.rs+68−62@@ -29,6 +29,33 @@ fn owned_zones_to_replace(live: &Value, planned: &[Value], owned: &[String]) -> Ok(replace) } +fn read_zone_state_with(+ refill: bool,+ mut call: impl FnMut(bool) -> Value,+ mut wait: impl FnMut(),+) -> Value {+ let mut reply = call(refill);+ if !retryable_read(&reply) { return reply; }+ if !refill && Bridge::ok(&reply) && reply["filledAreaByLayerMm2"].is_object() && reply["revision"].is_string() && reply["revisionUsable"] != false { return reply; }+ // Discard even old bridges' synchronous-looking refill reply. Mutation is+ // requested only once. Repeated delayed snapshots are observed stability,+ // not a native completion event (KiCad exposes none in this API).+ let mut previous: Option<Value> = None;+ for _ in 0..15 {+ wait();+ reply = call(false);+ if !retryable_read(&reply) { return reply; }+ if Bridge::ok(&reply) && reply["filledAreaByLayerMm2"].is_object() && reply["revision"].is_string() && reply["revisionUsable"] != false {+ if !refill || previous.as_ref().map(|p| p["revision"] == reply["revision"] && p["filledAreaByLayerMm2"] == reply["filledAreaByLayerMm2"]).unwrap_or(false) {+ reply["readbackEvidence"] = json!(if refill { "two delayed matching native snapshots after refill request" } else { "native snapshot" });+ return reply;+ }+ previous = Some(reply.clone());+ } else { previous = None; }+ }+ json!({"success":false,"errorCode":"zone_readback_unsettled","lastReply":reply,"message":"No usable stable zone snapshot; inspect native state. Refill was not replayed."})+}+ #[derive(Clone)] pub struct Bridge { pub ai_thread: String,@@ -48,6 +75,9 @@ impl Bridge { } pub fn ok(v: &Value) -> bool {+ if v.as_object().map(|o| o.iter().any(|(k,v)| k.starts_with("postCommit") && !v.is_null())).unwrap_or(false) {+ return false;+ } v.get("success").and_then(|s| s.as_bool()) == Some(true) || (v.get("status").and_then(|s| s.as_str()) == Some("ok") && v.get("success").is_none()) } @@ -203,59 +233,23 @@ impl Bridge { (replies, ok, None, traces.len()) } - /// Replace only explicitly owned zones, never infer ownership from a name or area.- /// Until native full-configuration reconciliation is available, replace owned- /// zones rather than incorrectly treating equal-area outlines as equivalent.- pub fn land_zones(&self, board: &str, zones: &[Value], pause_ms: u64, owned_ids: &[String]) -> Vec<(String, Value)> {+ /// One native transaction owns reconciliation, DRC, equality and Undo.+ /// Requires KiCad Bridge 1.0.23+; never fall back to partial delete/create.+ pub fn land_zones(&self, board: &str, zones: &[Value], _pause_ms: u64, owned_ids: &[String]) -> Vec<(String, Value)> { let live = self.zone_state(board, false);- if !Bridge::ok(&live) { return vec![("zone-readback".into(),live)]; }- let mut out = Vec::new();- let stale=match owned_zones_to_replace(&live,zones,owned_ids) {- Ok(ids)=>ids,- Err(reason)=>return vec![("zone-ownership".into(),json!({"success":false,"errorCode":"zone_ownership_conflict","message":reason}))],- };- if !stale.is_empty() {- let Some(rev) = self.revision(board) else { return vec![("removed-stale".into(), json!({"success": false, "errorCode": "no_revision"}))] };- let r = self.call("kicad_remove_zone", &json!({"filePath": board, "expectedRevision": rev, "itemIds": stale}));- let n = stale.len();- let good = Bridge::ok(&r);- out.push(("removed-stale".into(), json!({"success": good, "removed": n, "removedIds": stale, "errorCode": r["errorCode"], "message": format!("{n} explicitly owned live zones were removed before applying the full requested configuration"), "reply": r})));- if !good {- return out;- }- std::thread::sleep(std::time::Duration::from_millis(pause_ms));- }- let mut groups: Vec<(String, Vec<Value>, u64)> = Vec::new();- for z in zones {- let key = z.get("net").and_then(|n| n.as_str()).unwrap_or("keepout").to_string();- let prio = z.get("priority").and_then(|p| p.as_u64()).unwrap_or(0);- if let Some(g) = groups.iter_mut().find(|g| g.0 == key) {- g.1.push(z.clone());- g.2 = g.2.min(prio);- } else {- groups.push((key, vec![z.clone()], prio));- }- }- groups.sort_by_key(|g| g.2);- for (net, zs, _) in groups {- let mut r = json!({"success": false, "errorCode": "no_revision"});- for attempt in 0..3 {- let (rev, last) = self.revision_with_reply(board);- let Some(rev) = rev else { r["lastReply"] = last; break };- r = self.call("kicad_add_zone", &json!({"filePath": board, "expectedRevision": rev, "zones": zs}));- if r.get("errorCode").and_then(|e| e.as_str()) != Some("stale_board") || attempt == 2 {- break;- }- std::thread::sleep(std::time::Duration::from_millis(1500));- }- let good = Bridge::ok(&r);- out.push((net, r));- if !good {- break;- }- std::thread::sleep(std::time::Duration::from_millis(pause_ms));+ if !Bridge::ok(&live) { return vec![("zone-readback".into(), live)]; }+ if let Err(reason) = owned_zones_to_replace(&live, zones, owned_ids) {+ return vec![("zone-ownership".into(), json!({"success":false,"errorCode":"zone_ownership_conflict","message":reason}))]; }- out+ let Some(revision) = live["revision"].as_str() else {+ return vec![("zone-readback".into(), json!({"success":false,"errorCode":"no_revision","reply":live}))];+ };+ let reply = self.call("kicad_apply_zone_plan", &json!({+ "filePath":board, "expectedRevision":revision,+ "ownedItemIds":owned_ids, "zones":zones, "refill":false+ }));+ // A committed error is not permission to replay; the ledger retains it.+ vec![("native-zone-plan".into(), reply)] } /// Filled copper per layer. A refill of many zones can outlast the bridge's IPC wait@@ -270,17 +264,9 @@ impl Bridge { } pub fn zone_state(&self, board: &str, refill: bool) -> Value {- let mut r = self.call("kicad_zone_state", &json!({"filePath": board, "refill": refill}));- for attempt in 0..15 {- if !retryable_read(&r) { break; }- if r.get("filledAreaByLayerMm2").is_some() {- break;- }- eprintln!("zone state read {}: {} {}", attempt + 1, r["errorCode"].as_str().or(r["status"].as_str()).unwrap_or("?"), r["error"].as_str().or(r["message"].as_str()).unwrap_or("").chars().take(120).collect::<String>());- std::thread::sleep(std::time::Duration::from_secs(6));- r = self.call("kicad_zone_state", &json!({"filePath": board, "refill": false}));- }- r+ read_zone_state_with(refill,+ |fill| self.call("kicad_zone_state", &json!({"filePath":board,"refill":fill})),+ || std::thread::sleep(std::time::Duration::from_secs(6))) } /// Vias on the live board as (net, x, y).@@ -300,6 +286,26 @@ impl Bridge { #[cfg(test)] mod tests {+ #[test]+ fn refill_ack_and_transient_snapshots_are_never_measurements() {+ let mut replies = vec![+ json!({"success":true,"refillRequested":true,"revisionUsable":false}),+ json!({"success":true,"revision":"old","filledAreaByLayerMm2":{"F.Cu":1}}),+ json!({"success":false,"errorCode":"busy"}),+ json!({"success":true,"revision":"new","filledAreaByLayerMm2":{"F.Cu":2}}),+ json!({"success":true,"revision":"new","filledAreaByLayerMm2":{"F.Cu":2}}),+ ].into_iter();+ let mut calls = Vec::new();+ let r = super::read_zone_state_with(true, |fill| {calls.push(fill);replies.next().unwrap()}, || {});+ assert_eq!(r["revision"], "new");+ assert_eq!(calls, vec![true,false,false,false,false]);+ }+ #[test]+ fn committed_failure_is_not_success() {+ assert!(!super::Bridge::ok(&json!({"success":true,"committed":true,"postCommitDeletionError":"read failed"})));+ assert!(super::Bridge::ok(&json!({"success":true,"committed":true})));+ }+ use serde_json::json; #[test]
docs/acceptance-20260918/native-integration/black-viewer-regression.jsonadded+30@@ -0,0 +1,30 @@+[+ {+ "fixture": "black",+ "height": 384,+ "result": {+ "checked": true,+ "distinctColors": 1,+ "litSamples": 0,+ "method": "canvas color heuristic, not geometry qualification",+ "region": "approx",+ "rendered": false,+ "samples": 4352+ },+ "width": 640+ },+ {+ "fixture": "healthy",+ "height": 660,+ "result": {+ "checked": true,+ "distinctColors": 1148,+ "litSamples": 3901,+ "method": "canvas color heuristic, not geometry qualification",+ "region": "approx",+ "rendered": true,+ "samples": 3960+ },+ "width": 1100+ }+]
docs/acceptance-20260918/native-integration/refill-readback.jsonadded+1@@ -0,0 +1 @@+{"_hint":"filledAreaByLayerMm2 is the copper KiCad's zones keep on each layer: for a copper-ablation process, what does not have to be milled away. Add pours with kicad_add_zone; kicad_routing_validate is the DRC.","_note":"Areas are KiCad's own filled polygons of every zone (outline minus holes), summed per layer; the coverage is against the outline's bounding box, so a non-rectangular board reads a little low. Pads, tracks and vias outside zones are not counted.","_timeoutHint":"ab waits up to 130s for this verb before the request times out. If it's a long operation (cloud open / download / export), DON'T treat a timeout as failure — the work usually keeps running on the bridge. Poll `kicad_status` until it reports done.","boardBoxAreaMm2":4736.0,"boardPath":"C:/Users/john/Downloads/adom-gate/esc-demo/component-mpn/esc-g431-astra-silkscreen-v37.kicad_pcb","bridgeVersion":"1.0.25","definitions":[{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","F.Cu"],["min_thickness","0.25"],["name","GND solid joint at C9.2"],["net","GND"],["polygon",["pts",["xy","125.8","84.12"],["xy","127.6","84.12"],["xy","127.6","85.92"],["xy","125.8","85.92"]]],["priority","1"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"GND\")\n\t\t(layer \"F.Cu\")\n\t\t(name \"GND solid joint at C9.2\")\n\t\t(hatch edge 0.5)\n\t\t(priority 1)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125.8 84.12) (xy 127.6 84.12) (xy 127.6 85.92) (xy 125.8 85.92)\n\t\t\t)\n\t\t)\n\t)","id":"017b1732-1a8c-4144-8e9b-c471d8e93f39"},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","F.Cu"],["min_thickness","0.25"],["name","GND solid joint at C36.2"],["net","GND"],["polygon",["pts",["xy","109.58","94.6"],["xy","111.38","94.6"],["xy","111.38","96.4"],["xy","109.58","96.4"]]],["priority","1"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"GND\")\n\t\t(layer \"F.Cu\")\n\t\t(name \"GND solid joint at C36.2\")\n\t\t(hatch edge 0.5)\n\t\t(priority 1)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 109.58 94.6) (xy 111.38 94.6) (xy 111.38 96.4) (xy 109.58 96.4)\n\t\t\t)\n\t\t)\n\t)","id":"2c5da249-a5d3-45ac-aadc-d1c511e83361"},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","F.Cu"],["min_thickness","0.25"],["name","GND solid joint at U1.1"],["net","GND"],["polygon",["pts",["xy","141.15","78.6"],["xy","142.95","78.6"],["xy","142.95","80.4"],["xy","141.15","80.4"]]],["priority","1"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"GND\")\n\t\t(layer \"F.Cu\")\n\t\t(name \"GND solid joint at U1.1\")\n\t\t(hatch edge 0.5)\n\t\t(priority 1)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 141.15 78.6) (xy 142.95 78.6) (xy 142.95 80.4) (xy 141.15 80.4)\n\t\t\t)\n\t\t)\n\t)","id":"3aecdf60-8bb4-4c7c-9a0a-dec232d19476"},{"definition":["zone",["attr",["teardrop",["type","padvia"]]],["connect_pads","yes",["clearance","0"]],["fill",["island_removal_mode","1"]],["hatch","none","0.1"],["layer","F.Cu"],["min_thickness","0.0254"],["net","/nRST"],["polygon",["pts",["xy","106.751875","85.371349"],["xy","106.928651","85.548125"],["xy","107","85.425"],["xy","108","85.65"],["xy","108.075097","85.3"],["xy","107.351926","84.95"],["xy","107","85.175"],["xy","106.911612","85.211612"]]],["priority","30001"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/nRST\")\n\t\t(layer \"F.Cu\")\n\t\t(hatch none 0.1)\n\t\t(priority 30001)\n\t\t(attr\n\t\t\t(teardrop (type padvia))\n\t\t)\n\t\t(connect_pads yes\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.0254)\n\t\t(fill yes (island_removal_mode 1))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 106.751875 85.371349) (xy 106.928651 85.548125) (xy 107 85.425) (xy 108 85.65) (xy 108.075097 85.3)\n\t\t\t\t(xy 107.351926 84.95) (xy 107 85.175) (xy 106.911612 85.211612)\n\t\t\t)\n\t\t)\n\t)","id":null},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","F.Cu"],["min_thickness","0.25"],["name","GND solid joint at C45.2"],["net","GND"],["polygon",["pts",["xy","107.9","108.62"],["xy","109.7","108.62"],["xy","109.7","110.42"],["xy","107.9","110.42"]]],["priority","1"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"GND\")\n\t\t(layer \"F.Cu\")\n\t\t(name \"GND solid joint at C45.2\")\n\t\t(hatch edge 0.5)\n\t\t(priority 1)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 107.9 108.62) (xy 109.7 108.62) (xy 109.7 110.42) (xy 107.9 110.42)\n\t\t\t)\n\t\t)\n\t)","id":"5cfe01fc-ff56-4cd0-88c3-8c2e224a9ca0"},{"definition":["zone",["attr",["teardrop",["type","padvia"]]],["connect_pads","yes",["clearance","0"]],["fill",["island_removal_mode","1"]],["hatch","none","0.1"],["layer","F.Cu"],["min_thickness","0.0254"],["net","/SWCLK"],["polygon",["pts",["xy","107.411612","75.411612"],["xy","107.588388","75.588388"],["xy","107.936289","75.646871"],["xy","108.00292","74.99708"],["xy","107.35313","75.063712"]]],["priority","30005"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/SWCLK\")\n\t\t(layer \"F.Cu\")\n\t\t(hatch none 0.1)\n\t\t(priority 30005)\n\t\t(attr\n\t\t\t(teardrop (type padvia))\n\t\t)\n\t\t(connect_pads yes\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.0254)\n\t\t(fill yes (island_removal_mode 1))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 107.411612 75.411612) (xy 107.588388 75.588388) (xy 107.936289 75.646871) (xy 108.00292 74.99708)\n\t\t\t\t(xy 107.35313 75.063712)\n\t\t\t)\n\t\t)\n\t)","id":null},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","F.Cu"],["min_thickness","0.25"],["name","Phase C front load corridor"],["net","/DRV_SHC"],["polygon",["pts",["xy","156.2","75.5"],["xy","167","75.5"],["xy","167","89.7"],["xy","150","89.7"],["xy","150","82.4"],["xy","156.2","82.4"]]],["priority","3"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/DRV_SHC\")\n\t\t(layer \"F.Cu\")\n\t\t(name \"Phase C front load corridor\")\n\t\t(hatch edge 0.5)\n\t\t(priority 3)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 156.2 75.5) (xy 167 75.5) (xy 167 89.7) (xy 150 89.7) (xy 150 82.4) (xy 156.2 82.4)\n\t\t\t)\n\t\t)\n\t)","id":"7437f4b6-4535-40ab-9761-424612e0f482"},{"definition":["zone",["attr",["teardrop",["type","padvia"]]],["connect_pads","yes",["clearance","0"]],["fill",["island_removal_mode","1"]],["hatch","none","0.1"],["layer","F.Cu"],["min_thickness","0.0254"],["net","/USART1_TX"],["polygon",["pts",["xy","107.4","89.875"],["xy","107.4","90.125"],["xy","107.5","90.125"],["xy","107.588388","90.088388"],["xy","108.459619","89.459619"],["xy","108.327254","89.172746"],["xy","107.582538","89.498223"],["xy","107.411612","89.911612"],["xy","107.5","89.875"]]],["priority","30002"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/USART1_TX\")\n\t\t(layer \"F.Cu\")\n\t\t(hatch none 0.1)\n\t\t(priority 30002)\n\t\t(attr\n\t\t\t(teardrop (type padvia))\n\t\t)\n\t\t(connect_pads yes\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.0254)\n\t\t(fill yes (island_removal_mode 1))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 107.4 89.875) (xy 107.4 90.125) (xy 107.5 90.125) (xy 107.588388 90.088388) (xy 108.459619 89.459619)\n\t\t\t\t(xy 108.327254 89.172746) (xy 107.582538 89.498223) (xy 107.411612 89.911612) (xy 107.5 89.875)\n\t\t\t)\n\t\t)\n\t)","id":null},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","F.Cu"],["min_thickness","0.25"],["name","Phase A front load corridor"],["net","/DRV_SHA"],["polygon",["pts",["xy","156.2","104"],["xy","167","104"],["xy","167","121.5"],["xy","150","121.5"],["xy","150","110.4"],["xy","156.2","110.4"]]],["priority","3"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/DRV_SHA\")\n\t\t(layer \"F.Cu\")\n\t\t(name \"Phase A front load corridor\")\n\t\t(hatch edge 0.5)\n\t\t(priority 3)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 156.2 104) (xy 167 104) (xy 167 121.5) (xy 150 121.5) (xy 150 110.4) (xy 156.2 110.4)\n\t\t\t)\n\t\t)\n\t)","id":"88f4216b-fb3d-479d-9413-03865348fe88"},{"definition":["zone",["attr",["teardrop",["type","padvia"]]],["connect_pads","yes",["clearance","0"]],["fill",["island_removal_mode","1"]],["hatch","none","0.1"],["layer","F.Cu"],["min_thickness","0.0254"],["net","/USART1_RX"],["polygon",["pts",["xy","106.915128","91.708095"],["xy","107.091905","91.884872"],["xy","107.4","91.525"],["xy","108","91.65"],["xy","108.140287","91.4"],["xy","107.367544","91.15"],["xy","107.4","91.275"],["xy","107.311612","91.311612"]]],["priority","30003"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/USART1_RX\")\n\t\t(layer \"F.Cu\")\n\t\t(hatch none 0.1)\n\t\t(priority 30003)\n\t\t(attr\n\t\t\t(teardrop (type padvia))\n\t\t)\n\t\t(connect_pads yes\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.0254)\n\t\t(fill yes (island_removal_mode 1))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 106.915128 91.708095) (xy 107.091905 91.884872) (xy 107.4 91.525) (xy 108 91.65) (xy 108.140287 91.4)\n\t\t\t\t(xy 107.367544 91.15) (xy 107.4 91.275) (xy 107.311612 91.311612)\n\t\t\t)\n\t\t)\n\t)","id":null},{"definition":["zone",["attr",["teardrop",["type","padvia"]]],["connect_pads","yes",["clearance","0"]],["fill",["island_removal_mode","1"]],["hatch","none","0.1"],["layer","F.Cu"],["min_thickness","0.0254"],["net","/TIM15_CH1_DSHOT"],["polygon",["pts",["xy","108.411612","83.588388"],["xy","108.588388","83.411612"],["xy","108.64687","83.063711"],["xy","107.99708","82.99708"],["xy","108.063711","83.64687"]]],["priority","30004"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/TIM15_CH1_DSHOT\")\n\t\t(layer \"F.Cu\")\n\t\t(hatch none 0.1)\n\t\t(priority 30004)\n\t\t(attr\n\t\t\t(teardrop (type padvia))\n\t\t)\n\t\t(connect_pads yes\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.0254)\n\t\t(fill yes (island_removal_mode 1))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 108.411612 83.588388) (xy 108.588388 83.411612) (xy 108.64687 83.063711) (xy 107.99708 82.99708)\n\t\t\t\t(xy 108.063711 83.64687)\n\t\t\t)\n\t\t)\n\t)","id":null},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","F.Cu"],["min_thickness","0.25"],["name","Phase B front load corridor"],["net","/DRV_SHB"],["polygon",["pts",["xy","156.2","90"],["xy","167","90"],["xy","167","103.7"],["xy","150","103.7"],["xy","150","96.4"],["xy","156.2","96.4"]]],["priority","3"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/DRV_SHB\")\n\t\t(layer \"F.Cu\")\n\t\t(name \"Phase B front load corridor\")\n\t\t(hatch edge 0.5)\n\t\t(priority 3)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 156.2 90) (xy 167 90) (xy 167 103.7) (xy 150 103.7) (xy 150 96.4) (xy 156.2 96.4)\n\t\t\t)\n\t\t)\n\t)","id":"e0e7804c-d002-41ee-a695-bf6cbac6d87d"},{"definition":["zone",["attr",["teardrop",["type","padvia"]]],["connect_pads","yes",["clearance","0"]],["fill",["island_removal_mode","1"]],["hatch","none","0.1"],["layer","F.Cu"],["min_thickness","0.0254"],["net","/nRST"],["polygon",["pts",["xy","109.225903","85.425"],["xy","109.225903","85.175"],["xy","108.648074","84.95"],["xy","107.924903","85.3"],["xy","108","85.65"]]],["priority","30000"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/nRST\")\n\t\t(layer \"F.Cu\")\n\t\t(hatch none 0.1)\n\t\t(priority 30000)\n\t\t(attr\n\t\t\t(teardrop (type padvia))\n\t\t)\n\t\t(connect_pads yes\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.0254)\n\t\t(fill yes (island_removal_mode 1))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 109.225903 85.425) (xy 109.225903 85.175) (xy 108.648074 84.95) (xy 107.924903 85.3) (xy 108 85.65)\n\t\t\t)\n\t\t)\n\t)","id":null},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","F.Cu"],["min_thickness","0.25"],["name","GND solid joint at C43.2"],["net","GND"],["polygon",["pts",["xy","127.58","111.1"],["xy","129.38","111.1"],["xy","129.38","112.9"],["xy","127.58","112.9"]]],["priority","1"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"GND\")\n\t\t(layer \"F.Cu\")\n\t\t(name \"GND solid joint at C43.2\")\n\t\t(hatch edge 0.5)\n\t\t(priority 1)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 127.58 111.1) (xy 129.38 111.1) (xy 129.38 112.9) (xy 127.58 112.9)\n\t\t\t)\n\t\t)\n\t)","id":"f083a1d6-ecdd-4044-93c8-f75b8aa1f633"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","126.001","70.401"],["xy","126.101","70.301"],["xy","125.499","69.699"],["xy","125.399","69.799"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 126.001 70.401) (xy 126.101 70.301) (xy 125.499 69.699) (xy 125.399 69.799)\n\t\t\t)\n\t\t)\n\t)","id":"040ad157-88c0-4da9-8225-2b6ddb52f350"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND_OUT"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","127.801","72.801"],["xy","128.701","71.901"],["xy","128.099","71.299"],["xy","127.199","72.199"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND_OUT\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 127.801 72.801) (xy 128.701 71.901) (xy 128.099 71.299) (xy 127.199 72.199)\n\t\t\t)\n\t\t)\n\t)","id":"0e8c53ff-63d9-4a3e-9a45-bf565dc0d997"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","125.401","70.801"],["xy","125.501","70.701"],["xy","124.899","70.099"],["xy","124.799","70.199"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125.401 70.801) (xy 125.501 70.701) (xy 124.899 70.099) (xy 124.799 70.199)\n\t\t\t)\n\t\t)\n\t)","id":"133213d9-4cb6-40f4-8f57-44a50690c8c3"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND_OUT"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","128.4","72.025"],["xy","129.8","72.025"],["xy","129.8","71.175"],["xy","128.4","71.175"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND_OUT\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 128.4 72.025) (xy 129.8 72.025) (xy 129.8 71.175) (xy 128.4 71.175)\n\t\t\t)\n\t\t)\n\t)","id":"165e0e50-5e90-422f-8c46-958d42a43a0d"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND_OUT"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","127.925","72.7"],["xy","127.925","72.5"],["xy","127.075","72.5"],["xy","127.075","72.7"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND_OUT\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 127.925 72.7) (xy 127.925 72.5) (xy 127.075 72.5) (xy 127.075 72.7)\n\t\t\t)\n\t\t)\n\t)","id":"2a369953-4e7e-4d66-ad91-713d8ddcb2a7"},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Battery rail and high-side thermal column"],["net","+VBAT"],["polygon",["pts",["xy","133.8","59.5"],["xy","156","59.5"],["xy","156","125.5"],["xy","133.8","125.5"]]],["priority","2"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"+VBAT\")\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Battery rail and high-side thermal column\")\n\t\t(hatch edge 0.5)\n\t\t(priority 2)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 133.8 59.5) (xy 156 59.5) (xy 156 125.5) (xy 133.8 125.5)\n\t\t\t)\n\t\t)\n\t)","id":"2aa36752-98f7-4dc2-9b7a-ffaa2d54ed7f"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND_OUT"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","126.3","73.925"],["xy","126.7","73.925"],["xy","126.7","73.075"],["xy","126.3","73.075"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND_OUT\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 126.3 73.925) (xy 126.7 73.925) (xy 126.7 73.075) (xy 126.3 73.075)\n\t\t\t)\n\t\t)\n\t)","id":"3ae6eab3-89c2-483a-9bcc-0031312cf805"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND_OUT"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","125.575","73.1"],["xy","125.575","73.2"],["xy","126.425","73.2"],["xy","126.425","73.1"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND_OUT\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125.575 73.1) (xy 125.575 73.2) (xy 126.425 73.2) (xy 126.425 73.1)\n\t\t\t)\n\t\t)\n\t)","id":"49ab1809-eeed-436d-8077-87c86e4063a9"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","125.9","70.225"],["xy","126","70.225"],["xy","126","69.375"],["xy","125.9","69.375"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125.9 70.225) (xy 126 70.225) (xy 126 69.375) (xy 125.9 69.375)\n\t\t\t)\n\t\t)\n\t)","id":"558f85cc-291b-4283-b0c7-b7750586244d"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","124.6","72.225"],["xy","124.8","72.225"],["xy","124.8","71.375"],["xy","124.6","71.375"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 124.6 72.225) (xy 124.8 72.225) (xy 124.8 71.375) (xy 124.6 71.375)\n\t\t\t)\n\t\t)\n\t)","id":"5b444cf1-2e4f-4c44-b916-44fde4cf44af"},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Shunt return to fixed battery contact"],["net","GND_OUT"],["polygon",["pts",["xy","125","59.5"],["xy","135.7","59.5"],["xy","135.7","75"],["xy","125","75"]]],["priority","3"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"GND_OUT\")\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Shunt return to fixed battery contact\")\n\t\t(hatch edge 0.5)\n\t\t(priority 3)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125 59.5) (xy 135.7 59.5) (xy 135.7 75) (xy 125 75)\n\t\t\t)\n\t\t)\n\t)","id":"5ca4d191-ee51-4c5d-90fd-e85865ef05fc"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND_OUT"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","127.501","73.301"],["xy","127.801","73.001"],["xy","127.199","72.399"],["xy","126.899","72.699"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND_OUT\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 127.501 73.301) (xy 127.801 73.001) (xy 127.199 72.399) (xy 126.899 72.699)\n\t\t\t)\n\t\t)\n\t)","id":"5dfa3764-295e-441d-b37e-70f6276128ad"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","124.125","72.8"],["xy","124.125","72.7"],["xy","123.275","72.7"],["xy","123.275","72.8"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 124.125 72.8) (xy 124.125 72.7) (xy 123.275 72.7) (xy 123.275 72.8)\n\t\t\t)\n\t\t)\n\t)","id":"5eefa5af-d65c-4b2a-bf6f-703d67a69713"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","126.225","70"],["xy","126.225","69.9"],["xy","125.375","69.9"],["xy","125.375","70"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 126.225 70) (xy 126.225 69.9) (xy 125.375 69.9) (xy 125.375 70)\n\t\t\t)\n\t\t)\n\t)","id":"6aa742b2-0f34-4c5b-8605-b60ed989d730"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND_OUT"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","125.699","73.501"],["xy","125.999","73.801"],["xy","126.601","73.199"],["xy","126.301","72.899"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND_OUT\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125.699 73.501) (xy 125.999 73.801) (xy 126.601 73.199) (xy 126.301 72.899)\n\t\t\t)\n\t\t)\n\t)","id":"6c18568d-7c32-403d-923b-112863025a73"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","126.125","70.2"],["xy","126.125","70.1"],["xy","125.275","70.1"],["xy","125.275","70.2"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 126.125 70.2) (xy 126.125 70.1) (xy 125.275 70.1) (xy 125.275 70.2)\n\t\t\t)\n\t\t)\n\t)","id":"70aff5b1-bac8-46dc-a45e-5c3c67b9fcce"},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","GND solid joint at JP1.1"],["net","GND"],["polygon",["pts",["xy","123.75","86.55"],["xy","126.25","86.55"],["xy","126.25","89.05"],["xy","123.75","89.05"]]],["priority","1"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"GND\")\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"GND solid joint at JP1.1\")\n\t\t(hatch edge 0.5)\n\t\t(priority 1)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 123.75 86.55) (xy 126.25 86.55) (xy 126.25 89.05) (xy 123.75 89.05)\n\t\t\t)\n\t\t)\n\t)","id":"71ccaf0b-e848-4eb5-b7e8-5d5409e56224"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND_OUT"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","125.824","72.663"],["xy","125.687","72.813"],["xy","126.313","73.387"],["xy","126.451","73.237"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND_OUT\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125.824 72.663) (xy 125.687 72.813) (xy 126.313 73.387) (xy 126.451 73.237)\n\t\t\t)\n\t\t)\n\t)","id":"729ae281-f6f6-429f-be59-e6db658fcbfb"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND_OUT"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","127.001","73.801"],["xy","127.501","73.301"],["xy","126.899","72.699"],["xy","126.399","73.199"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND_OUT\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 127.001 73.801) (xy 127.501 73.301) (xy 126.899 72.699) (xy 126.399 73.199)\n\t\t\t)\n\t\t)\n\t)","id":"77fc77be-ddb9-4b13-a37e-94ee409421a0"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","125.801","70.701"],["xy","126.001","70.501"],["xy","125.399","69.899"],["xy","125.199","70.099"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125.801 70.701) (xy 126.001 70.501) (xy 125.399 69.899) (xy 125.199 70.099)\n\t\t\t)\n\t\t)\n\t)","id":"7a3167d1-59f6-43df-aaa1-2c1281eb0864"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","125.525","71.5"],["xy","125.525","70.5"],["xy","124.675","70.5"],["xy","124.675","71.5"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125.525 71.5) (xy 125.525 70.5) (xy 124.675 70.5) (xy 124.675 71.5)\n\t\t\t)\n\t\t)\n\t)","id":"80dc3d66-df51-4678-8553-5a0bf322277a"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","124.151","72.638"],["xy","123.988","72.488"],["xy","123.412","73.112"],["xy","123.574","73.262"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 124.151 72.638) (xy 123.988 72.488) (xy 123.412 73.112) (xy 123.574 73.262)\n\t\t\t)\n\t\t)\n\t)","id":"814eadb0-e97a-43d9-8f94-c1210966c696"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND_OUT"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","129.474","71.872"],["xy","129.674","72.112"],["xy","130.326","71.568"],["xy","130.126","71.328"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND_OUT\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 129.474 71.872) (xy 129.674 72.112) (xy 130.326 71.568) (xy 130.126 71.328)\n\t\t\t)\n\t\t)\n\t)","id":"8ed8e617-e8eb-4104-be7a-3daadba60502"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","126.301","70.101"],["xy","126.401","70.001"],["xy","125.799","69.399"],["xy","125.699","69.499"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 126.301 70.101) (xy 126.401 70.001) (xy 125.799 69.399) (xy 125.699 69.499)\n\t\t\t)\n\t\t)\n\t)","id":"94fbb364-3ce1-433b-a2b2-1ed1de6bc7fa"},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","GND solid joint at MC18.1"],["net","GND"],["polygon",["pts",["xy","106.75","95.75"],["xy","109.25","95.75"],["xy","109.25","98.25"],["xy","106.75","98.25"]]],["priority","1"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"GND\")\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"GND solid joint at MC18.1\")\n\t\t(hatch edge 0.5)\n\t\t(priority 1)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 106.75 95.75) (xy 109.25 95.75) (xy 109.25 98.25) (xy 106.75 98.25)\n\t\t\t)\n\t\t)\n\t)","id":"9bc16cf1-384b-44f1-908c-f88830a751f8"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","126.101","70.201"],["xy","126.201","70.101"],["xy","125.599","69.499"],["xy","125.499","69.599"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 126.101 70.201) (xy 126.201 70.101) (xy 125.599 69.499) (xy 125.499 69.599)\n\t\t\t)\n\t\t)\n\t)","id":"a078c3d0-6993-4fdd-9982-6a31d4388b5e"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","125.101","72.101"],["xy","125.401","71.801"],["xy","124.799","71.199"],["xy","124.499","71.499"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125.101 72.101) (xy 125.401 71.801) (xy 124.799 71.199) (xy 124.499 71.499)\n\t\t\t)\n\t\t)\n\t)","id":"a2991f36-c476-4b9a-b9be-1846775c9621"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","125.2","70.825"],["xy","125.5","70.825"],["xy","125.5","69.975"],["xy","125.2","69.975"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125.2 70.825) (xy 125.5 70.825) (xy 125.5 69.975) (xy 125.2 69.975)\n\t\t\t)\n\t\t)\n\t)","id":"a8a02e41-96e5-4f19-9ec3-07e70c556d6a"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","130.019","67.781"],["xy","130.319","67.441"],["xy","129.681","66.879"],["xy","129.381","67.219"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 130.019 67.781) (xy 130.319 67.441) (xy 129.681 66.879) (xy 129.381 67.219)\n\t\t\t)\n\t\t)\n\t)","id":"b0b59391-436f-4a82-84df-a94d8b3b2a7d"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","124.001","73.001"],["xy","124.901","72.101"],["xy","124.299","71.499"],["xy","123.399","72.399"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 124.001 73.001) (xy 124.901 72.101) (xy 124.299 71.499) (xy 123.399 72.399)\n\t\t\t)\n\t\t)\n\t)","id":"b21cf93d-01d3-462c-9f30-0a0ff603af18"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","128.4","67.925"],["xy","129.7","67.925"],["xy","129.7","67.075"],["xy","128.4","67.075"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 128.4 67.925) (xy 129.7 67.925) (xy 129.7 67.075) (xy 128.4 67.075)\n\t\t\t)\n\t\t)\n\t)","id":"b547ea14-16b0-4f51-91c4-dde776bc0afe"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin sense pad keepout GND (U6.3)"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","122.85","72.3"],["xy","124.87","72.3"],["xy","124.87","73.6"],["xy","122.85","73.6"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin sense pad keepout GND (U6.3)\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 122.85 72.3) (xy 124.87 72.3) (xy 124.87 73.6) (xy 122.85 73.6)\n\t\t\t)\n\t\t)\n\t)","id":"c2fe5100-78ac-4852-8345-dc71cd721f9b"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","126.501","70.001"],["xy","128.701","67.801"],["xy","128.099","67.199"],["xy","125.899","69.399"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 126.501 70.001) (xy 128.701 67.801) (xy 128.099 67.199) (xy 125.899 69.399)\n\t\t\t)\n\t\t)\n\t)","id":"caa8a5e4-bc86-4f91-a7f2-b92167b3e186"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin tap keepout GND"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","126.1","70.125"],["xy","126.2","70.125"],["xy","126.2","69.275"],["xy","126.1","69.275"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin tap keepout GND\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 126.1 70.125) (xy 126.2 70.125) (xy 126.2 69.275) (xy 126.1 69.275)\n\t\t\t)\n\t\t)\n\t)","id":"ddc89295-f211-4ecc-804d-8c867b399146"},{"definition":["zone",["connect_pads",["clearance","0"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["keepout",["copperpour","not_allowed"],["footprints","allowed"],["pads","allowed"],["tracks","allowed"],["vias","allowed"]],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","Kelvin sense pad keepout GND_OUT (U6.4)"],["placement",["enabled","no"],["sheetname",""]],["polygon",["pts",["xy","125.13","72.3"],["xy","127.15","72.3"],["xy","127.15","73.6"],["xy","125.13","73.6"]]]],"definitionSexpr":"\n\t(zone\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"Kelvin sense pad keepout GND_OUT (U6.4)\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(keepout\n\t\t\t(tracks allowed)\n\t\t\t(vias allowed)\n\t\t\t(pads allowed)\n\t\t\t(copperpour not_allowed)\n\t\t\t(footprints allowed)\n\t\t)\n\t\t(placement\n\t\t\t(enabled no)\n\t\t\t(sheetname \"\")\n\t\t)\n\t\t(fill (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 125.13 72.3) (xy 127.15 72.3) (xy 127.15 73.6) (xy 125.13 73.6)\n\t\t\t)\n\t\t)\n\t)","id":"e2bc595e-e00e-4632-bab3-b9570863f68f"},{"definition":["zone",["connect_pads",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.35"],["thermal_gap","0.3"]],["hatch","edge","0.5"],["layers","F.Cu","B.Cu"],["min_thickness","0.25"],["name","GND outer copper retention"],["net","GND"],["polygon",["pts",["xy","104.343","61.364"],["xy","104.36","61.03"],["xy","104.414","60.7"],["xy","104.505","60.379"],["xy","104.631","60.07"],["xy","104.791","59.778"],["xy","104.984","59.506"],["xy","105.205","59.257"],["xy","105.453","59.036"],["xy","105.725","58.843"],["xy","106.017","58.683"],["xy","106.325","58.556"],["xy","106.646","58.465"],["xy","106.975","58.411"],["xy","107.308","58.394"],["xy","164.692","58.394"],["xy","165.025","58.411"],["xy","165.354","58.465"],["xy","165.675","58.556"],["xy","165.983","58.683"],["xy","166.275","58.843"],["xy","166.547","59.036"],["xy","166.795","59.257"],["xy","167.016","59.506"],["xy","167.209","59.778"],["xy","167.369","60.07"],["xy","167.495","60.379"],["xy","167.586","60.7"],["xy","167.64","61.03"],["xy","167.657","61.364"],["xy","167.657","128.636"],["xy","167.64","128.97"],["xy","167.586","129.3"],["xy","167.495","129.621"],["xy","167.369","129.93"],["xy","167.209","130.222"],["xy","167.016","130.494"],["xy","166.795","130.743"],["xy","166.547","130.964"],["xy","166.275","131.157"],["xy","165.983","131.317"],["xy","165.675","131.444"],["xy","165.354","131.535"],["xy","165.025","131.589"],["xy","164.692","131.606"],["xy","107.308","131.606"],["xy","106.975","131.589"],["xy","106.646","131.535"],["xy","106.325","131.444"],["xy","106.017","131.317"],["xy","105.725","131.157"],["xy","105.453","130.964"],["xy","105.205","130.743"],["xy","104.984","130.494"],["xy","104.791","130.222"],["xy","104.631","129.93"],["xy","104.505","129.621"],["xy","104.414","129.3"],["xy","104.36","128.97"],["xy","104.343","128.636"]]]],"definitionSexpr":"\n\t(zone\n\t\t(net \"GND\")\n\t\t(layers \"F.Cu\" \"B.Cu\")\n\t\t(name \"GND outer copper retention\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.3) (thermal_bridge_width 0.35) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 104.343 61.364) (xy 104.36 61.03) (xy 104.414 60.7) (xy 104.505 60.379) (xy 104.631 60.07) (xy 104.791 59.778)\n\t\t\t\t(xy 104.984 59.506) (xy 105.205 59.257) (xy 105.453 59.036) (xy 105.725 58.843) (xy 106.017 58.683)\n\t\t\t\t(xy 106.325 58.556) (xy 106.646 58.465) (xy 106.975 58.411) (xy 107.308 58.394) (xy 164.692 58.394)\n\t\t\t\t(xy 165.025 58.411) (xy 165.354 58.465) (xy 165.675 58.556) (xy 165.983 58.683) (xy 166.275 58.843)\n\t\t\t\t(xy 166.547 59.036) (xy 166.795 59.257) (xy 167.016 59.506) (xy 167.209 59.778) (xy 167.369 60.07)\n\t\t\t\t(xy 167.495 60.379) (xy 167.586 60.7) (xy 167.64 61.03) (xy 167.657 61.364) (xy 167.657 128.636)\n\t\t\t\t(xy 167.64 128.97) (xy 167.586 129.3) (xy 167.495 129.621) (xy 167.369 129.93) (xy 167.209 130.222)\n\t\t\t\t(xy 167.016 130.494) (xy 166.795 130.743) (xy 166.547 130.964) (xy 166.275 131.157) (xy 165.983 131.317)\n\t\t\t\t(xy 165.675 131.444) (xy 165.354 131.535) (xy 165.025 131.589) (xy 164.692 131.606) (xy 107.308 131.606)\n\t\t\t\t(xy 106.975 131.589) (xy 106.646 131.535) (xy 106.325 131.444) (xy 106.017 131.317) (xy 105.725 131.157)\n\t\t\t\t(xy 105.453 130.964) (xy 105.205 130.743) (xy 104.984 130.494) (xy 104.791 130.222) (xy 104.631 129.93)\n\t\t\t\t(xy 104.505 129.621) (xy 104.414 129.3) (xy 104.36 128.97) (xy 104.343 128.636)\n\t\t\t)\n\t\t)\n\t)","id":"efb40f79-34ac-4dc8-9bee-1b3d8d036f71"},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","B.Cu"],["min_thickness","0.25"],["name","Phase C low-side thermal spreader"],["net","/DRV_SHC"],["polygon",["pts",["xy","149","82.5"],["xy","167","82.5"],["xy","167","89.7"],["xy","130","89.7"],["xy","130","86"],["xy","149","86"]]],["priority","3"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/DRV_SHC\")\n\t\t(layer \"B.Cu\")\n\t\t(name \"Phase C low-side thermal spreader\")\n\t\t(hatch edge 0.5)\n\t\t(priority 3)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 149 82.5) (xy 167 82.5) (xy 167 89.7) (xy 130 89.7) (xy 130 86) (xy 149 86)\n\t\t\t)\n\t\t)\n\t)","id":"0b2967f5-85e4-497a-8166-29950f80a032"},{"definition":["zone",["attr",["teardrop",["type","padvia"]]],["connect_pads","yes",["clearance","0"]],["fill",["island_removal_mode","1"]],["hatch","none","0.1"],["layer","B.Cu"],["min_thickness","0.0254"],["net","/SWDIO"],["polygon",["pts",["xy","108.75535","72.425"],["xy","108.75535","72.175"],["xy","108.2","72.175"],["xy","108.111612","72.211612"],["xy","107.540381","72.540382"],["xy","107.672745","72.827255"],["xy","108.41746","72.501777"],["xy","108.288388","72.388388"]]],["priority","30000"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/SWDIO\")\n\t\t(layer \"B.Cu\")\n\t\t(hatch none 0.1)\n\t\t(priority 30000)\n\t\t(attr\n\t\t\t(teardrop (type padvia))\n\t\t)\n\t\t(connect_pads yes\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.0254)\n\t\t(fill yes (island_removal_mode 1))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 108.75535 72.425) (xy 108.75535 72.175) (xy 108.2 72.175) (xy 108.111612 72.211612) (xy 107.540381 72.540382)\n\t\t\t\t(xy 107.672745 72.827255) (xy 108.41746 72.501777) (xy 108.288388 72.388388)\n\t\t\t)\n\t\t)\n\t)","id":null},{"definition":["zone",["attr",["teardrop",["type","padvia"]]],["connect_pads","yes",["clearance","0"]],["fill",["island_removal_mode","1"]],["hatch","none","0.1"],["layer","B.Cu"],["min_thickness","0.0254"],["net","/E_STOP"],["polygon",["pts",["xy","108.7","94.825"],["xy","108.7","94.575"],["xy","108.6","94.575"],["xy","108.688388","94.611612"],["xy","108.306408","94.426752"],["xy","108.357169","94.457169"],["xy","108.64687","95.063712"],["xy","108.511612","94.788388"],["xy","108.6","94.825"]]],["priority","30001"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/E_STOP\")\n\t\t(layer \"B.Cu\")\n\t\t(hatch none 0.1)\n\t\t(priority 30001)\n\t\t(attr\n\t\t\t(teardrop (type padvia))\n\t\t)\n\t\t(connect_pads yes\n\t\t\t(clearance 0)\n\t\t)\n\t\t(min_thickness 0.0254)\n\t\t(fill yes (island_removal_mode 1))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 108.7 94.825) (xy 108.7 94.575) (xy 108.6 94.575) (xy 108.688388 94.611612) (xy 108.306408 94.426752)\n\t\t\t\t(xy 108.357169 94.457169) (xy 108.64687 95.063712) (xy 108.511612 94.788388) (xy 108.6 94.825)\n\t\t\t)\n\t\t)\n\t)","id":null},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","B.Cu"],["min_thickness","0.25"],["name","Phase B low-side thermal spreader"],["net","/DRV_SHB"],["polygon",["pts",["xy","149","96.5"],["xy","158","96.5"],["xy","158","90"],["xy","167","90"],["xy","167","109.5"],["xy","158","109.5"],["xy","158","103.7"],["xy","149","103.7"]]],["priority","3"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/DRV_SHB\")\n\t\t(layer \"B.Cu\")\n\t\t(name \"Phase B low-side thermal spreader\")\n\t\t(hatch edge 0.5)\n\t\t(priority 3)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 149 96.5) (xy 158 96.5) (xy 158 90) (xy 167 90) (xy 167 109.5) (xy 158 109.5) (xy 158 103.7)\n\t\t\t\t(xy 149 103.7)\n\t\t\t)\n\t\t)\n\t)","id":"812f555a-33ca-4def-a4f0-abdb5ffbd577"},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","B.Cu"],["min_thickness","0.25"],["name","Phase A low-side thermal spreader"],["net","/DRV_SHA"],["polygon",["pts",["xy","149","110.5"],["xy","167","110.5"],["xy","167","124.5"],["xy","130","124.5"],["xy","130","118"],["xy","149","118"]]],["priority","3"]],"definitionSexpr":"\n\t(zone\n\t\t(net \"/DRV_SHA\")\n\t\t(layer \"B.Cu\")\n\t\t(name \"Phase A low-side thermal spreader\")\n\t\t(hatch edge 0.5)\n\t\t(priority 3)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 149 110.5) (xy 167 110.5) (xy 167 124.5) (xy 130 124.5) (xy 130 118) (xy 149 118)\n\t\t\t)\n\t\t)\n\t)","id":"d3efb5ca-26a4-499a-bc5d-401d9f1cbab6"},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","In1.Cu"],["min_thickness","0.25"],["name","GND inner reference plane"],["net","GND"],["polygon",["pts",["xy","104.343","61.364"],["xy","104.36","61.03"],["xy","104.414","60.7"],["xy","104.505","60.379"],["xy","104.631","60.07"],["xy","104.791","59.778"],["xy","104.984","59.506"],["xy","105.205","59.257"],["xy","105.453","59.036"],["xy","105.725","58.843"],["xy","106.017","58.683"],["xy","106.325","58.556"],["xy","106.646","58.465"],["xy","106.975","58.411"],["xy","107.308","58.394"],["xy","164.692","58.394"],["xy","165.025","58.411"],["xy","165.354","58.465"],["xy","165.675","58.556"],["xy","165.983","58.683"],["xy","166.275","58.843"],["xy","166.547","59.036"],["xy","166.795","59.257"],["xy","167.016","59.506"],["xy","167.209","59.778"],["xy","167.369","60.07"],["xy","167.495","60.379"],["xy","167.586","60.7"],["xy","167.64","61.03"],["xy","167.657","61.364"],["xy","167.657","128.636"],["xy","167.64","128.97"],["xy","167.586","129.3"],["xy","167.495","129.621"],["xy","167.369","129.93"],["xy","167.209","130.222"],["xy","167.016","130.494"],["xy","166.795","130.743"],["xy","166.547","130.964"],["xy","166.275","131.157"],["xy","165.983","131.317"],["xy","165.675","131.444"],["xy","165.354","131.535"],["xy","165.025","131.589"],["xy","164.692","131.606"],["xy","107.308","131.606"],["xy","106.975","131.589"],["xy","106.646","131.535"],["xy","106.325","131.444"],["xy","106.017","131.317"],["xy","105.725","131.157"],["xy","105.453","130.964"],["xy","105.205","130.743"],["xy","104.984","130.494"],["xy","104.791","130.222"],["xy","104.631","129.93"],["xy","104.505","129.621"],["xy","104.414","129.3"],["xy","104.36","128.97"],["xy","104.343","128.636"]]]],"definitionSexpr":"\n\t(zone\n\t\t(net \"GND\")\n\t\t(layer \"In1.Cu\")\n\t\t(name \"GND inner reference plane\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 104.343 61.364) (xy 104.36 61.03) (xy 104.414 60.7) (xy 104.505 60.379) (xy 104.631 60.07) (xy 104.791 59.778)\n\t\t\t\t(xy 104.984 59.506) (xy 105.205 59.257) (xy 105.453 59.036) (xy 105.725 58.843) (xy 106.017 58.683)\n\t\t\t\t(xy 106.325 58.556) (xy 106.646 58.465) (xy 106.975 58.411) (xy 107.308 58.394) (xy 164.692 58.394)\n\t\t\t\t(xy 165.025 58.411) (xy 165.354 58.465) (xy 165.675 58.556) (xy 165.983 58.683) (xy 166.275 58.843)\n\t\t\t\t(xy 166.547 59.036) (xy 166.795 59.257) (xy 167.016 59.506) (xy 167.209 59.778) (xy 167.369 60.07)\n\t\t\t\t(xy 167.495 60.379) (xy 167.586 60.7) (xy 167.64 61.03) (xy 167.657 61.364) (xy 167.657 128.636)\n\t\t\t\t(xy 167.64 128.97) (xy 167.586 129.3) (xy 167.495 129.621) (xy 167.369 129.93) (xy 167.209 130.222)\n\t\t\t\t(xy 167.016 130.494) (xy 166.795 130.743) (xy 166.547 130.964) (xy 166.275 131.157) (xy 165.983 131.317)\n\t\t\t\t(xy 165.675 131.444) (xy 165.354 131.535) (xy 165.025 131.589) (xy 164.692 131.606) (xy 107.308 131.606)\n\t\t\t\t(xy 106.975 131.589) (xy 106.646 131.535) (xy 106.325 131.444) (xy 106.017 131.317) (xy 105.725 131.157)\n\t\t\t\t(xy 105.453 130.964) (xy 105.205 130.743) (xy 104.984 130.494) (xy 104.791 130.222) (xy 104.631 129.93)\n\t\t\t\t(xy 104.505 129.621) (xy 104.414 129.3) (xy 104.36 128.97) (xy 104.343 128.636)\n\t\t\t)\n\t\t)\n\t)","id":"a41c9ddb-e3e0-4944-9c67-a86b5c0ca32b"},{"definition":["zone",["connect_pads","yes",["clearance","0.2"]],["fill",["island_removal_mode","0"],["thermal_bridge_width","0.5"],["thermal_gap","0.5"]],["hatch","edge","0.5"],["layer","In2.Cu"],["min_thickness","0.25"],["name","+3V3 inner reference plane"],["net","+3V3"],["polygon",["pts",["xy","104.343","61.364"],["xy","104.36","61.03"],["xy","104.414","60.7"],["xy","104.505","60.379"],["xy","104.631","60.07"],["xy","104.791","59.778"],["xy","104.984","59.506"],["xy","105.205","59.257"],["xy","105.453","59.036"],["xy","105.725","58.843"],["xy","106.017","58.683"],["xy","106.325","58.556"],["xy","106.646","58.465"],["xy","106.975","58.411"],["xy","107.308","58.394"],["xy","164.692","58.394"],["xy","165.025","58.411"],["xy","165.354","58.465"],["xy","165.675","58.556"],["xy","165.983","58.683"],["xy","166.275","58.843"],["xy","166.547","59.036"],["xy","166.795","59.257"],["xy","167.016","59.506"],["xy","167.209","59.778"],["xy","167.369","60.07"],["xy","167.495","60.379"],["xy","167.586","60.7"],["xy","167.64","61.03"],["xy","167.657","61.364"],["xy","167.657","128.636"],["xy","167.64","128.97"],["xy","167.586","129.3"],["xy","167.495","129.621"],["xy","167.369","129.93"],["xy","167.209","130.222"],["xy","167.016","130.494"],["xy","166.795","130.743"],["xy","166.547","130.964"],["xy","166.275","131.157"],["xy","165.983","131.317"],["xy","165.675","131.444"],["xy","165.354","131.535"],["xy","165.025","131.589"],["xy","164.692","131.606"],["xy","107.308","131.606"],["xy","106.975","131.589"],["xy","106.646","131.535"],["xy","106.325","131.444"],["xy","106.017","131.317"],["xy","105.725","131.157"],["xy","105.453","130.964"],["xy","105.205","130.743"],["xy","104.984","130.494"],["xy","104.791","130.222"],["xy","104.631","129.93"],["xy","104.505","129.621"],["xy","104.414","129.3"],["xy","104.36","128.97"],["xy","104.343","128.636"]]]],"definitionSexpr":"\n\t(zone\n\t\t(net \"+3V3\")\n\t\t(layer \"In2.Cu\")\n\t\t(name \"+3V3 inner reference plane\")\n\t\t(hatch edge 0.5)\n\t\t(connect_pads yes\n\t\t\t(clearance 0.2)\n\t\t)\n\t\t(min_thickness 0.25)\n\t\t(fill yes (thermal_gap 0.5) (thermal_bridge_width 0.5) (island_removal_mode 0))\n\t\t(polygon\n\t\t\t(pts\n\t\t\t\t(xy 104.343 61.364) (xy 104.36 61.03) (xy 104.414 60.7) (xy 104.505 60.379) (xy 104.631 60.07) (xy 104.791 59.778)\n\t\t\t\t(xy 104.984 59.506) (xy 105.205 59.257) (xy 105.453 59.036) (xy 105.725 58.843) (xy 106.017 58.683)\n\t\t\t\t(xy 106.325 58.556) (xy 106.646 58.465) (xy 106.975 58.411) (xy 107.308 58.394) (xy 164.692 58.394)\n\t\t\t\t(xy 165.025 58.411) (xy 165.354 58.465) (xy 165.675 58.556) (xy 165.983 58.683) (xy 166.275 58.843)\n\t\t\t\t(xy 166.547 59.036) (xy 166.795 59.257) (xy 167.016 59.506) (xy 167.209 59.778) (xy 167.369 60.07)\n\t\t\t\t(xy 167.495 60.379) (xy 167.586 60.7) (xy 167.64 61.03) (xy 167.657 61.364) (xy 167.657 128.636)\n\t\t\t\t(xy 167.64 128.97) (xy 167.586 129.3) (xy 167.495 129.621) (xy 167.369 129.93) (xy 167.209 130.222)\n\t\t\t\t(xy 167.016 130.494) (xy 166.795 130.743) (xy 166.547 130.964) (xy 166.275 131.157) (xy 165.983 131.317)\n\t\t\t\t(xy 165.675 131.444) (xy 165.354 131.535) (xy 165.025 131.589) (xy 164.692 131.606) (xy 107.308 131.606)\n\t\t\t\t(xy 106.975 131.589) (xy 106.646 131.535) (xy 106.325 131.444) (xy 106.017 131.317) (xy 105.725 131.157)\n\t\t\t\t(xy 105.453 130.964) (xy 105.205 130.743) (xy 104.984 130.494) (xy 104.791 130.222) (xy 104.631 129.93)\n\t\t\t\t(xy 104.505 129.621) (xy 104.414 129.3) (xy 104.36 128.97) (xy 104.343 128.636)\n\t\t\t)\n\t\t)\n\t)","id":"9ab356b0-8191-458e-b51a-50ca12bd1f10"}],"durationMs":739,"elapsedMs":612,"error":"","filledAreaByLayerMm2":{"B.Cu":3169.87,"F.Cu":2891.08,"In1.Cu":4128.9,"In2.Cu":3963.0},"filledCoverageByLayerPercent":{"B.Cu":66.93,"F.Cu":61.04,"In1.Cu":87.18,"In2.Cu":83.68},"kicadVersion":"10.0.5","mechanism":"ipc","output":"","readbackEvidence":"two delayed matching native snapshots after refill request","refilled":false,"revision":"f52b7e9a9906ef8729c214f3a2613b238c312c15fa94a362bae58f1cca9d3897","schemaVersion":1,"socket":"ipc://C:\\Users\\john\\AppData\\Local\\Temp\\kicad\\api.sock","source":"live-editor","status":"ok","statusVerb":"kicad_status","success":true,"timeoutSeconds":130,"zoneCount":57,"zones":[{"filled":true,"fills":[{"areaMm2":1.78,"layer":"F.Cu","polygons":1}],"id":"017b1732-1a8c-4144-8e9b-c471d8e93f39","layers":["F.Cu"],"name":"GND solid joint at C9.2","net":"GND","outlineAreaMm2":3.24,"priority":1,"type":"copper"},{"filled":true,"fills":[{"areaMm2":1.61,"layer":"F.Cu","polygons":1}],"id":"2c5da249-a5d3-45ac-aadc-d1c511e83361","layers":["F.Cu"],"name":"GND solid joint at C36.2","net":"GND","outlineAreaMm2":3.24,"priority":1,"type":"copper"},{"filled":true,"fills":[{"areaMm2":1.41,"layer":"F.Cu","polygons":1}],"id":"3aecdf60-8bb4-4c7c-9a0a-dec232d19476","layers":["F.Cu"],"name":"GND solid joint at U1.1","net":"GND","outlineAreaMm2":3.24,"priority":1,"type":"copper"},{"filled":true,"fills":[{"areaMm2":2.82,"layer":"F.Cu","polygons":1}],"id":"5cfe01fc-ff56-4cd0-88c3-8c2e224a9ca0","layers":["F.Cu"],"name":"GND solid joint at C45.2","net":"GND","outlineAreaMm2":3.24,"priority":1,"type":"copper"},{"filled":true,"fills":[{"areaMm2":158.7,"layer":"F.Cu","polygons":3}],"id":"7437f4b6-4535-40ab-9761-424612e0f482","layers":["F.Cu"],"name":"Phase C front load corridor","net":"/DRV_SHC","outlineAreaMm2":198.62,"priority":3,"type":"copper"},{"filled":true,"fills":[{"areaMm2":233.81,"layer":"F.Cu","polygons":1}],"id":"88f4216b-fb3d-479d-9413-03865348fe88","layers":["F.Cu"],"name":"Phase A front load corridor","net":"/DRV_SHA","outlineAreaMm2":257.82,"priority":3,"type":"copper"},{"filled":true,"fills":[{"areaMm2":158.35,"layer":"F.Cu","polygons":2}],"id":"e0e7804c-d002-41ee-a695-bf6cbac6d87d","layers":["F.Cu"],"name":"Phase B front load corridor","net":"/DRV_SHB","outlineAreaMm2":193.22,"priority":3,"type":"copper"},{"filled":true,"fills":[{"areaMm2":2.86,"layer":"F.Cu","polygons":1}],"id":"f083a1d6-ecdd-4044-93c8-f75b8aa1f633","layers":["F.Cu"],"name":"GND solid joint at C43.2","net":"GND","outlineAreaMm2":3.24,"priority":1,"type":"copper"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"040ad157-88c0-4da9-8225-2b6ddb52f350","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.12,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"0e8c53ff-63d9-4a3e-9a45-bf565dc0d997","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND_OUT","net":"","outlineAreaMm2":1.08,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"133213d9-4cb6-40f4-8f57-44a50690c8c3","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.12,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"165e0e50-5e90-422f-8c46-958d42a43a0d","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND_OUT","net":"","outlineAreaMm2":1.19,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"2a369953-4e7e-4d66-ad91-713d8ddcb2a7","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND_OUT","net":"","outlineAreaMm2":0.17,"priority":0,"type":"keepout"},{"filled":true,"fills":[{"areaMm2":836.83,"layer":"F.Cu","polygons":5},{"areaMm2":907.06,"layer":"B.Cu","polygons":4}],"id":"2aa36752-98f7-4dc2-9b7a-ffaa2d54ed7f","layers":["F.Cu","B.Cu"],"name":"Battery rail and high-side thermal column","net":"+VBAT","outlineAreaMm2":1465.2,"priority":2,"type":"copper"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"3ae6eab3-89c2-483a-9bcc-0031312cf805","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND_OUT","net":"","outlineAreaMm2":0.34,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"49ab1809-eeed-436d-8077-87c86e4063a9","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND_OUT","net":"","outlineAreaMm2":0.08,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"558f85cc-291b-4283-b0c7-b7750586244d","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.08,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"5b444cf1-2e4f-4c44-b916-44fde4cf44af","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.17,"priority":0,"type":"keepout"},{"filled":true,"fills":[{"areaMm2":99.21,"layer":"F.Cu","polygons":1},{"areaMm2":62.72,"layer":"B.Cu","polygons":1}],"id":"5ca4d191-ee51-4c5d-90fd-e85865ef05fc","layers":["F.Cu","B.Cu"],"name":"Shunt return to fixed battery contact","net":"GND_OUT","outlineAreaMm2":165.85,"priority":3,"type":"copper"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"5dfa3764-295e-441d-b37e-70f6276128ad","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND_OUT","net":"","outlineAreaMm2":0.36,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"5eefa5af-d65c-4b2a-bf6f-703d67a69713","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.08,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"6aa742b2-0f34-4c5b-8605-b60ed989d730","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.09,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"6c18568d-7c32-403d-923b-112863025a73","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND_OUT","net":"","outlineAreaMm2":0.36,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"70aff5b1-bac8-46dc-a45e-5c3c67b9fcce","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.09,"priority":0,"type":"keepout"},{"filled":true,"fills":[{"areaMm2":5.31,"layer":"F.Cu","polygons":1},{"areaMm2":3.62,"layer":"B.Cu","polygons":2}],"id":"71ccaf0b-e848-4eb5-b7e8-5d5409e56224","layers":["F.Cu","B.Cu"],"name":"GND solid joint at JP1.1","net":"GND","outlineAreaMm2":6.25,"priority":1,"type":"copper"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"729ae281-f6f6-429f-be59-e6db658fcbfb","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND_OUT","net":"","outlineAreaMm2":0.17,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"77fc77be-ddb9-4b13-a37e-94ee409421a0","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND_OUT","net":"","outlineAreaMm2":0.6,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"7a3167d1-59f6-43df-aaa1-2c1281eb0864","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.24,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"80dc3d66-df51-4678-8553-5a0bf322277a","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.85,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"814eadb0-e97a-43d9-8f94-c1210966c696","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.19,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"8ed8e617-e8eb-4104-be7a-3daadba60502","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND_OUT","net":"","outlineAreaMm2":0.27,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"94fbb364-3ce1-433b-a2b2-1ed1de6bc7fa","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.12,"priority":0,"type":"keepout"},{"filled":true,"fills":[{"areaMm2":4.23,"layer":"F.Cu","polygons":2},{"areaMm2":4.56,"layer":"B.Cu","polygons":1}],"id":"9bc16cf1-384b-44f1-908c-f88830a751f8","layers":["F.Cu","B.Cu"],"name":"GND solid joint at MC18.1","net":"GND","outlineAreaMm2":6.25,"priority":1,"type":"copper"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"a078c3d0-6993-4fdd-9982-6a31d4388b5e","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.12,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"a2991f36-c476-4b9a-b9be-1846775c9621","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.36,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"a8a02e41-96e5-4f19-9ec3-07e70c556d6a","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.25,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"b0b59391-436f-4a82-84df-a94d8b3b2a7d","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.39,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"b21cf93d-01d3-462c-9f30-0a0ff603af18","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":1.08,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"b547ea14-16b0-4f51-91c4-dde776bc0afe","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":1.1,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"c2fe5100-78ac-4852-8345-dc71cd721f9b","layers":["F.Cu","B.Cu"],"name":"Kelvin sense pad keepout GND (U6.3)","net":"","outlineAreaMm2":2.63,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"caa8a5e4-bc86-4f91-a7f2-b92167b3e186","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":2.65,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"ddc89295-f211-4ecc-804d-8c867b399146","layers":["F.Cu","B.Cu"],"name":"Kelvin tap keepout GND","net":"","outlineAreaMm2":0.08,"priority":0,"type":"keepout"},{"filled":false,"fills":[{"areaMm2":0.0,"layer":"F.Cu","polygons":0},{"areaMm2":0.0,"layer":"B.Cu","polygons":0}],"id":"e2bc595e-e00e-4632-bab3-b9570863f68f","layers":["F.Cu","B.Cu"],"name":"Kelvin sense pad keepout GND_OUT (U6.4)","net":"","outlineAreaMm2":2.63,"priority":0,"type":"keepout"},{"filled":true,"fills":[{"areaMm2":1381.64,"layer":"F.Cu","polygons":71},{"areaMm2":1658.77,"layer":"B.Cu","polygons":45}],"id":"efb40f79-34ac-4dc8-9bee-1b3d8d036f71","layers":["F.Cu","B.Cu"],"name":"GND outer copper retention","net":"GND","outlineAreaMm2":4627.83,"priority":0,"type":"copper"},{"filled":true,"fills":[{"areaMm2":136.01,"layer":"B.Cu","polygons":1}],"id":"0b2967f5-85e4-497a-8166-29950f80a032","layers":["B.Cu"],"name":"Phase C low-side thermal spreader","net":"/DRV_SHC","outlineAreaMm2":199.9,"priority":3,"type":"copper"},{"filled":true,"fills":[{"areaMm2":158.34,"layer":"B.Cu","polygons":2}],"id":"812f555a-33ca-4def-a4f0-abdb5ffbd577","layers":["B.Cu"],"name":"Phase B low-side thermal spreader","net":"/DRV_SHB","outlineAreaMm2":240.3,"priority":3,"type":"copper"},{"filled":true,"fills":[{"areaMm2":238.35,"layer":"B.Cu","polygons":2}],"id":"d3efb5ca-26a4-499a-bc5d-401d9f1cbab6","layers":["B.Cu"],"name":"Phase A low-side thermal spreader","net":"/DRV_SHA","outlineAreaMm2":375.5,"priority":3,"type":"copper"},{"filled":true,"fills":[{"areaMm2":4128.9,"layer":"In1.Cu","polygons":1}],"id":"a41c9ddb-e3e0-4944-9c67-a86b5c0ca32b","layers":["In1.Cu"],"name":"GND inner reference plane","net":"GND","outlineAreaMm2":4627.83,"priority":0,"type":"copper"},{"filled":true,"fills":[{"areaMm2":3963.0,"layer":"In2.Cu","polygons":1}],"id":"9ab356b0-8191-458e-b51a-50ca12bd1f10","layers":["In2.Cu"],"name":"+3V3 inner reference plane","net":"+3V3","outlineAreaMm2":4627.83,"priority":0,"type":"copper"},{"filled":true,"fills":[{"areaMm2":0.32,"layer":"F.Cu","polygons":1}],"id":"c9b065f5-6e63-0f26-0a77-8034226c298c","layers":["F.Cu"],"name":"","net":"/TIM15_CH1_DSHOT","outlineAreaMm2":0.32,"priority":30004,"type":"teardrop"},{"filled":true,"fills":[{"areaMm2":0.46,"layer":"F.Cu","polygons":1}],"id":"762257c0-bd5d-0e80-3397-9d3c2ae03a36","layers":["F.Cu"],"name":"","net":"/USART1_TX","outlineAreaMm2":0.46,"priority":30002,"type":"teardrop"},{"filled":true,"fills":[{"areaMm2":0.51,"layer":"F.Cu","polygons":1}],"id":"5846d3a6-4fab-07f1-14f9-92f04e7d6d44","layers":["F.Cu"],"name":"","net":"/nRST","outlineAreaMm2":0.51,"priority":30001,"type":"teardrop"},{"filled":true,"fills":[{"areaMm2":0.57,"layer":"F.Cu","polygons":1}],"id":"e644a9bf-4ed2-08fd-20d0-f05d791d1ba8","layers":["F.Cu"],"name":"","net":"/nRST","outlineAreaMm2":0.57,"priority":30000,"type":"teardrop"},{"filled":true,"fills":[{"areaMm2":0.39,"layer":"B.Cu","polygons":1}],"id":"7c5ab1c1-514e-01cc-11fb-7b2a06d23a68","layers":["B.Cu"],"name":"","net":"/SWDIO","outlineAreaMm2":0.39,"priority":30000,"type":"teardrop"},{"filled":true,"fills":[{"areaMm2":0.32,"layer":"F.Cu","polygons":1}],"id":"619811c8-aa62-0be4-1aae-fbaf013c0147","layers":["F.Cu"],"name":"","net":"/SWCLK","outlineAreaMm2":0.32,"priority":30005,"type":"teardrop"},{"filled":true,"fills":[{"areaMm2":0.35,"layer":"F.Cu","polygons":1}],"id":"a7d68229-dc0f-0adc-3f05-68f4832ac194","layers":["F.Cu"],"name":"","net":"/USART1_RX","outlineAreaMm2":0.35,"priority":30003,"type":"teardrop"},{"filled":true,"fills":[{"areaMm2":0.07,"layer":"B.Cu","polygons":1}],"id":"80361334-6597-0a64-07f1-7f9f924fe7c0","layers":["B.Cu"],"name":"","net":"/E_STOP","outlineAreaMm2":0.07,"priority":30001,"type":"teardrop"}]}
docs/native-zone-landing.mdadded+9@@ -0,0 +1,9 @@+# Native zone landing and measurement++AI Flow sends the complete desired zone plan and explicitly recorded owned IDs to KiCad Bridge's `kicad_apply_zone_plan`. The bridge performs conservative definition comparison, full candidate DRC for changes, and one native Undo transaction. AI Flow does not fall back to separate delete/create operations. Use KiCad Bridge 1.0.24 or newer for the explicit refill acknowledgement contract.++Only IDs returned by the run's native operations establish ownership. Another tool's zones are preserved. Conflicting unowned names refuse. Reapplying an unchanged plan is a no-op, not a DRC-clean certification. An incomplete DRC report still refuses real changes.++Refill is requested once, separately. Its acknowledgement is not a usable revision or measurement. AI Flow polls read-only snapshots and requires two delayed matching revisions and filled-area maps. This is observed stability, not a native completion event. Busy replies may be retried; identity and configuration refusals stop. A post-commit error never authorizes replaying the mutation. The ledger keeps the failed response and subsequent readback.++Measurement failures remain failures: the tool records the evidence and refuses to announce measured copper or advance with a successful measurement outcome. Keep native DRC and current/thermal gates separate; copper area does not establish a current rating.
docs/release-0.1.31.mdadded+11@@ -0,0 +1,11 @@+# AI Flow 0.1.31++Pours now use KiCad Bridge's complete owned-zone transaction, replacing the prior separate remove/create fallback. The bridge owns conservative zone comparison, native candidate DRC and one Undo. AI Flow retains explicit ownership and never replays a failed or uncertain mutation automatically.++Refill acknowledgement no longer counts as measured copper. AI Flow requests refill once and reads until two delayed revision/area snapshots match. Permanent board/configuration errors refuse. A failed measurement is recorded as failed, and `finish` rejects failed, missing, empty or invalid copper measurements. Skills and plan hints explain the contract.++Validation: production compilation, workspace tests, component and widget workflows, mask/obstacle geometry tests, and all 41 existing CLI commands preserved. Live AdomLapper ESC v37 (57 zones) returned two matching delayed snapshots with F.Cu 2891.08, B.Cu 3169.87, In1.Cu 4128.9 and In2.Cu 3963.0 mm2. This is observed fill stability, not a native completion event or electrical qualification. See [native evidence](acceptance-20260918/native-integration/refill-readback.json).++KiCad Bridge 1.0.23's zone transaction and deletion/equality fixes were accepted by its owner on ConfRoomROG; 1.0.24 supplies the explicit refill acknowledgement. Native leaders/borders passed its owner's create/update/remove/Undo/DRC acceptance in 1.0.25. Linked editor/viewer refresh shipped in 1.0.26; AdomLapper's shared process still served 1.0.25 during this test and was not restarted.++Known follow-up: an unchanged zone plan can refuse when inherited DRC output is truncated, although nothing would change. [Bridge PR #17](https://wiki.adom.inc/adom/kicad-bridge/prs/17) moves that no-op return before DRC and explicitly avoids claiming DRC cleanliness. Actual mutations still require complete candidate DRC. Native field editing, exact obstacle extraction, model/appearance mutation and exact reference framing remain open bridge work. This release does not claim those features.
package.json+1−1@@ -1,7 +1,7 @@ { "slug": "adom-aiflow", "type": "app",- "version": "0.1.30",+ "version": "0.1.31", "title": "AI Flow", "description": "Adom's AI Flow: a tool to help the AI follow all of the steps it takes to build a board. One Rust binary with a crate per step (placement helpers, a grid router with Kelvin taps, pours with keepouts, KiCad's DRC gate, live landing through the KiCad Bridge, copper measurement, current and thermal analysis) and a finish line that refuses an unfinished board. Every command answers with hints for the AI; every turn, its thinking time and every rework loop go into run.jsonl, so Claude, Codex and any other engine are compared on the same flow. KiCad today; Altium, Fusion and Adom's own web apps next.", "summary": "Adom's AI Flow: a tool to help the AI follow all of the steps it takes to build a board. The AI thinks its way from placement through routing, pours, current and thermal analysis to a delivered video; the binary does the fast, deterministic parts of every step, hands back hints, and keeps a ledger of every turn, every return to an earlier step, and the clock from the prompt to done.",
skills/adom-aiflow/SKILL.md+6@@ -172,3 +172,9 @@ Zone ownership comes only from successful native creation item IDs recorded by t Fields 0.4.0 supports specified rectangular conducting blocks, per-layer copper thickness, and a Signals view. Read its `docs/heatsinks-and-signals.md` before adding `heatsinks`, `copperUmByLayer`, or `signals` to the run spec. Model only real proposed assembly geometry with justified conductivity/contact and dielectric data. Never invent a heatsink or change the load to make a gate pass. Re-solve after spec changes so input hashes remain valid. For high-speed nets, explicitly define capacitance or differential-pair checks with consistent stackup and reference copper. `adom-fields ui --port 8874 view --quantity signals` shows the results. Record unsupported cases and limitations; a screening estimate is not manufacturing or signal-integrity qualification. Native EDA model/text/zone primitives remain bridge-owned; pending bridge PRs are not deployed capabilities.++## Native zone ownership and refill++`land pours` delegates the complete owned-zone plan to KiCad Bridge in one native transaction. Never replace another tool's zones or infer ownership from names, areas or absence in the intake board. Use Bridge 1.0.24+; no legacy delete/create fallback. An unchanged plan is not a DRC-clean certificate.++Refill acknowledgement is asynchronous. Request it once, then read without refill until two delayed revision/area snapshots agree. This proves observed stability, not a native completion event. Do not use the acknowledgement's old geometry; do not replay a timed-out or post-commit-failed mutation. Inspect the saved response, exact board and current revision. Measurement failure must remain a failed outcome. See docs/native-zone-landing.md.