diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml
index 636b9bdd3..9036c415f 100644
--- a/.github/workflows/playwright.yml
+++ b/.github/workflows/playwright.yml
@@ -263,7 +263,7 @@ jobs:
       fail-fast: false
       matrix:
         os: [ubuntu-latest, windows-latest, macos-14]
-    timeout-minutes: 40
+    timeout-minutes: 60
     runs-on: ${{ matrix.os }}
     needs: check-rust-changes
     steps:
diff --git a/docs/kcl/angleToMatchLengthX.md b/docs/kcl/angleToMatchLengthX.md
index e666283df..f66c1d9db 100644
--- a/docs/kcl/angleToMatchLengthX.md
+++ b/docs/kcl/angleToMatchLengthX.md
@@ -270,6 +270,26 @@ const extrusion = extrude(5, sketch001)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -479,6 +499,26 @@ const extrusion = extrude(5, sketch001)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/angleToMatchLengthY.md b/docs/kcl/angleToMatchLengthY.md
index 20243dab0..3ebb5278e 100644
--- a/docs/kcl/angleToMatchLengthY.md
+++ b/docs/kcl/angleToMatchLengthY.md
@@ -274,6 +274,26 @@ const extrusion = extrude(5, sketch001)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -483,6 +503,26 @@ const extrusion = extrude(5, sketch001)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/angledLine.md b/docs/kcl/angledLine.md
index 432fcb642..f5db4221d 100644
--- a/docs/kcl/angledLine.md
+++ b/docs/kcl/angledLine.md
@@ -189,6 +189,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -398,6 +418,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -609,6 +649,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -818,6 +878,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/angledLineOfXLength.md b/docs/kcl/angledLineOfXLength.md
index 2ff7573e9..d34cddd64 100644
--- a/docs/kcl/angledLineOfXLength.md
+++ b/docs/kcl/angledLineOfXLength.md
@@ -188,6 +188,26 @@ const extrusion = extrude(10, sketch001)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -397,6 +417,26 @@ const extrusion = extrude(10, sketch001)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -608,6 +648,26 @@ const extrusion = extrude(10, sketch001)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -817,6 +877,26 @@ const extrusion = extrude(10, sketch001)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/angledLineOfYLength.md b/docs/kcl/angledLineOfYLength.md
index dd87e7344..5e15b2d4b 100644
--- a/docs/kcl/angledLineOfYLength.md
+++ b/docs/kcl/angledLineOfYLength.md
@@ -190,6 +190,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -399,6 +419,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -610,6 +650,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -819,6 +879,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/angledLineThatIntersects.md b/docs/kcl/angledLineThatIntersects.md
index 9e039ef23..92a527010 100644
--- a/docs/kcl/angledLineThatIntersects.md
+++ b/docs/kcl/angledLineThatIntersects.md
@@ -282,6 +282,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -491,6 +511,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -702,6 +742,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -911,6 +971,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/angledLineToX.md b/docs/kcl/angledLineToX.md
index 27c299817..082017d08 100644
--- a/docs/kcl/angledLineToX.md
+++ b/docs/kcl/angledLineToX.md
@@ -187,6 +187,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -396,6 +416,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -607,6 +647,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -816,6 +876,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/angledLineToY.md b/docs/kcl/angledLineToY.md
index ffc1f0fae..171822fde 100644
--- a/docs/kcl/angledLineToY.md
+++ b/docs/kcl/angledLineToY.md
@@ -187,6 +187,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -396,6 +416,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -607,6 +647,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -816,6 +876,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/arc.md b/docs/kcl/arc.md
index ac9fca561..faf8f5575 100644
--- a/docs/kcl/arc.md
+++ b/docs/kcl/arc.md
@@ -200,6 +200,26 @@ const exampleSketch = startSketchOn('XZ')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -409,6 +429,26 @@ const exampleSketch = startSketchOn('XZ')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -620,6 +660,26 @@ const exampleSketch = startSketchOn('XZ')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -829,6 +889,26 @@ const exampleSketch = startSketchOn('XZ')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/arrayReduce.md b/docs/kcl/arrayReduce.md
index 04ca67c74..6de9ed10e 100644
--- a/docs/kcl/arrayReduce.md
+++ b/docs/kcl/arrayReduce.md
@@ -182,6 +182,26 @@ decagon(5.0)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -391,6 +411,26 @@ decagon(5.0)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -594,6 +634,26 @@ decagon(5.0)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -803,6 +863,26 @@ decagon(5.0)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/bezierCurve.md b/docs/kcl/bezierCurve.md
index 9db9871a9..49ac9d149 100644
--- a/docs/kcl/bezierCurve.md
+++ b/docs/kcl/bezierCurve.md
@@ -193,6 +193,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -402,6 +422,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -613,6 +653,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -822,6 +882,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/chamfer.md b/docs/kcl/chamfer.md
index 2d90b1fcc..6afd3298b 100644
--- a/docs/kcl/chamfer.md
+++ b/docs/kcl/chamfer.md
@@ -448,6 +448,26 @@ const sketch001 = startSketchOn(part001, chamfer1)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -852,6 +872,26 @@ const sketch001 = startSketchOn(part001, chamfer1)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/circle.md b/docs/kcl/circle.md
index fccd78ca4..60f269061 100644
--- a/docs/kcl/circle.md
+++ b/docs/kcl/circle.md
@@ -9,14 +9,14 @@ Construct a 2-dimensional circle, of the specified radius, centered at
 the provided (x, y) origin point.
 
 ```js
-circle(center: [number], radius: number, sketch_surface_or_group: SketchSurfaceOrGroup, tag?: TagDeclarator) -> SketchGroup
+circle(data: CircleData, sketch_surface_or_group: SketchSurfaceOrGroup, tag?: TagDeclarator) -> SketchGroup
 ```
 
 ### Examples
 
 ```js
 const exampleSketch = startSketchOn("-XZ")
-  |> circle([0, 0], 10, %)
+  |> circle({ center: [0, 0], radius: 10 }, %)
 
 const example = extrude(5, exampleSketch)
 ```
@@ -30,7 +30,7 @@ const exampleSketch = startSketchOn("XZ")
   |> line([0, 30], %)
   |> line([-30, 0], %)
   |> close(%)
-  |> hole(circle([0, 15], 5, %), %)
+  |> hole(circle({ center: [0, 15], radius: 5 }, %), %)
 
 const example = extrude(5, exampleSketch)
 ```
@@ -39,8 +39,15 @@ const example = extrude(5, exampleSketch)
 
 ### Arguments
 
-* `center`: `[number]` (REQUIRED)
-* `radius`: `number` (REQUIRED)
+* `data`: `CircleData` - Data for drawing an circle (REQUIRED)
+```js
+{
+	// The center of the circle.
+	center: [number, number],
+	// The circle radius
+	radius: number,
+}
+```
 * `sketch_surface_or_group`: `SketchSurfaceOrGroup` - A sketch surface or a sketch group. (REQUIRED)
 ```js
 {
@@ -186,6 +193,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -562,6 +589,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -773,6 +820,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -982,6 +1049,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/close.md b/docs/kcl/close.md
index 251a383a6..8defa064b 100644
--- a/docs/kcl/close.md
+++ b/docs/kcl/close.md
@@ -188,6 +188,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -397,6 +417,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -608,6 +648,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -817,6 +877,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/extrude.md b/docs/kcl/extrude.md
index 9e33090cd..fa2fec96e 100644
--- a/docs/kcl/extrude.md
+++ b/docs/kcl/extrude.md
@@ -213,6 +213,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -423,6 +443,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -753,6 +793,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/fillet.md b/docs/kcl/fillet.md
index ca0704aa9..873ae4c69 100644
--- a/docs/kcl/fillet.md
+++ b/docs/kcl/fillet.md
@@ -445,6 +445,26 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -849,6 +869,26 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/getNextAdjacentEdge.md b/docs/kcl/getNextAdjacentEdge.md
index 410b26bed..5446b9131 100644
--- a/docs/kcl/getNextAdjacentEdge.md
+++ b/docs/kcl/getNextAdjacentEdge.md
@@ -31,7 +31,7 @@ const example = extrude(5, exampleSketch)
      }, %)
 ```
 
-
+
 
 ### Arguments
 
diff --git a/docs/kcl/getPreviousAdjacentEdge.md b/docs/kcl/getPreviousAdjacentEdge.md
index ce7bb491b..afe3e5de7 100644
--- a/docs/kcl/getPreviousAdjacentEdge.md
+++ b/docs/kcl/getPreviousAdjacentEdge.md
@@ -31,7 +31,7 @@ const example = extrude(5, exampleSketch)
      }, %)
 ```
 
-
+
 
 ### Arguments
 
diff --git a/docs/kcl/helix.md b/docs/kcl/helix.md
index 0c7ce138c..91f9674b5 100644
--- a/docs/kcl/helix.md
+++ b/docs/kcl/helix.md
@@ -16,7 +16,7 @@ helix(data: HelixData, extrude_group: ExtrudeGroup) -> ExtrudeGroup
 
 ```js
 const part001 = startSketchOn('XY')
-  |> circle([5, 5], 10, %)
+  |> circle({ center: [5, 5], radius: 10 }, %)
   |> extrude(10, %)
   |> helix({
        angleStart: 0,
@@ -316,6 +316,26 @@ const part001 = startSketchOn('XY')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -711,6 +731,26 @@ const part001 = startSketchOn('XY')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/hole.md b/docs/kcl/hole.md
index 8cdb173ef..e6ab1d7f2 100644
--- a/docs/kcl/hole.md
+++ b/docs/kcl/hole.md
@@ -21,8 +21,8 @@ const exampleSketch = startSketchOn('XY')
   |> line([5, 0], %)
   |> line([0, -5], %)
   |> close(%)
-  |> hole(circle([1, 1], .25, %), %)
-  |> hole(circle([1, 4], .25, %), %)
+  |> hole(circle({ center: [1, 1], radius: .25 }, %), %)
+  |> hole(circle({ center: [1, 4], radius: .25 }, %), %)
 
 const example = extrude(1, exampleSketch)
 ```
@@ -41,7 +41,7 @@ fn squareHoleSketch = () => {
 }
 
 const exampleSketch = startSketchOn('-XZ')
-  |> circle([0, 0], 3, %)
+  |> circle({ center: [0, 0], radius: 3 }, %)
   |> hole(squareHoleSketch(), %)
 const example = extrude(1, exampleSketch)
 ```
@@ -199,6 +199,26 @@ const example = extrude(1, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -409,6 +429,26 @@ const example = extrude(1, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -611,6 +651,26 @@ const example = extrude(1, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -820,6 +880,26 @@ const example = extrude(1, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -1022,6 +1102,26 @@ const example = extrude(1, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -1231,6 +1331,26 @@ const example = extrude(1, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/hollow.md b/docs/kcl/hollow.md
index a43ae50df..011f7970b 100644
--- a/docs/kcl/hollow.md
+++ b/docs/kcl/hollow.md
@@ -54,11 +54,17 @@ const case = startSketchOn('-XZ')
   |> extrude(65, %)
 
 const thing1 = startSketchOn(case, 'end')
-  |> circle([-size / 2, -size / 2], 25, %)
+  |> circle({
+       center: [-size / 2, -size / 2],
+       radius: 25
+     }, %)
   |> extrude(50, %)
 
 const thing2 = startSketchOn(case, 'end')
-  |> circle([size / 2, -size / 2], 25, %)
+  |> circle({
+       center: [size / 2, -size / 2],
+       radius: 25
+     }, %)
   |> extrude(50, %)
 
 hollow(0.5, case)
@@ -343,6 +349,26 @@ hollow(0.5, case)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -738,6 +764,26 @@ hollow(0.5, case)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/int.md b/docs/kcl/int.md
index d4c8b82bb..7e87da9df 100644
--- a/docs/kcl/int.md
+++ b/docs/kcl/int.md
@@ -21,7 +21,7 @@ int(num: number) -> i64
 
 ```js
 const sketch001 = startSketchOn('XZ')
-  |> circle([0, 0], 2, %)
+  |> circle({ center: [0, 0], radius: 2 }, %)
 const extrude001 = extrude(5, sketch001)
 
 const pattern01 = patternTransform(int(ceil(5 / 2)), (id) => {
diff --git a/docs/kcl/lastSegX.md b/docs/kcl/lastSegX.md
index dcf0959ac..21e5655e4 100644
--- a/docs/kcl/lastSegX.md
+++ b/docs/kcl/lastSegX.md
@@ -179,6 +179,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -388,6 +408,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/lastSegY.md b/docs/kcl/lastSegY.md
index d507276b0..744a55f85 100644
--- a/docs/kcl/lastSegY.md
+++ b/docs/kcl/lastSegY.md
@@ -179,6 +179,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -388,6 +408,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/line.md b/docs/kcl/line.md
index a0e690b7f..17baffd9e 100644
--- a/docs/kcl/line.md
+++ b/docs/kcl/line.md
@@ -192,6 +192,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -401,6 +421,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -612,6 +652,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -821,6 +881,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/lineTo.md b/docs/kcl/lineTo.md
index dedc14384..3beedc7a5 100644
--- a/docs/kcl/lineTo.md
+++ b/docs/kcl/lineTo.md
@@ -179,6 +179,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -388,6 +408,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -599,6 +639,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -808,6 +868,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/loft.md b/docs/kcl/loft.md
index 80f4e1767..98e472d08 100644
--- a/docs/kcl/loft.md
+++ b/docs/kcl/loft.md
@@ -47,10 +47,10 @@ const squareSketch = startSketchOn('XY')
   |> close(%)
 
 const circleSketch0 = startSketchOn(offsetPlane('XY', 75))
-  |> circle([0, 100], 50, %)
+  |> circle({ center: [0, 100], radius: 50 }, %)
 
 const circleSketch1 = startSketchOn(offsetPlane('XY', 150))
-  |> circle([0, 100], 20, %)
+  |> circle({ center: [0, 100], radius: 20 }, %)
 
 loft([
   squareSketch,
@@ -59,7 +59,7 @@ loft([
 ])
 ```
 
-
+
 
 ```js
 // Loft a square, a circle, and another circle with options.
@@ -72,10 +72,10 @@ const squareSketch = startSketchOn('XY')
   |> close(%)
 
 const circleSketch0 = startSketchOn(offsetPlane('XY', 75))
-  |> circle([0, 100], 50, %)
+  |> circle({ center: [0, 100], radius: 50 }, %)
 
 const circleSketch1 = startSketchOn(offsetPlane('XY', 150))
-  |> circle([0, 100], 20, %)
+  |> circle({ center: [0, 100], radius: 20 }, %)
 
 loft([
   squareSketch,
@@ -98,7 +98,7 @@ loft([
 })
 ```
 
-
+
 
 ### Arguments
 
@@ -393,6 +393,26 @@ loft([
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/offsetPlane.md b/docs/kcl/offsetPlane.md
index 329a03a37..750dcc944 100644
--- a/docs/kcl/offsetPlane.md
+++ b/docs/kcl/offsetPlane.md
@@ -25,12 +25,12 @@ const squareSketch = startSketchOn('XY')
   |> close(%)
 
 const circleSketch = startSketchOn(offsetPlane('XY', 150))
-  |> circle([0, 100], 50, %)
+  |> circle({ center: [0, 100], radius: 50 }, %)
 
 loft([squareSketch, circleSketch])
 ```
 
-
+
 
 ```js
 // Loft a square and a circle on the `XZ` plane using offset.
@@ -43,7 +43,7 @@ const squareSketch = startSketchOn('XZ')
   |> close(%)
 
 const circleSketch = startSketchOn(offsetPlane('XZ', 150))
-  |> circle([0, 100], 50, %)
+  |> circle({ center: [0, 100], radius: 50 }, %)
 
 loft([squareSketch, circleSketch])
 ```
@@ -61,7 +61,7 @@ const squareSketch = startSketchOn('YZ')
   |> close(%)
 
 const circleSketch = startSketchOn(offsetPlane('YZ', 150))
-  |> circle([0, 100], 50, %)
+  |> circle({ center: [0, 100], radius: 50 }, %)
 
 loft([squareSketch, circleSketch])
 ```
@@ -79,7 +79,7 @@ const squareSketch = startSketchOn('-XZ')
   |> close(%)
 
 const circleSketch = startSketchOn(offsetPlane('-XZ', -150))
-  |> circle([0, 100], 50, %)
+  |> circle({ center: [0, 100], radius: 50 }, %)
 
 loft([squareSketch, circleSketch])
 ```
diff --git a/docs/kcl/patternCircular2d.md b/docs/kcl/patternCircular2d.md
index 626f6a528..1c9eebd1f 100644
--- a/docs/kcl/patternCircular2d.md
+++ b/docs/kcl/patternCircular2d.md
@@ -197,6 +197,26 @@ const example = extrude(1, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -407,6 +427,26 @@ const example = extrude(1, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/patternCircular3d.md b/docs/kcl/patternCircular3d.md
index 1d2ab70c7..11080e324 100644
--- a/docs/kcl/patternCircular3d.md
+++ b/docs/kcl/patternCircular3d.md
@@ -16,7 +16,7 @@ patternCircular3d(data: CircularPattern3dData, extrude_group_set: ExtrudeGroupSe
 
 ```js
 const exampleSketch = startSketchOn('XZ')
-  |> circle([0, 0], 1, %)
+  |> circle({ center: [0, 0], radius: 1 }, %)
 
 const example = extrude(-5, exampleSketch)
   |> patternCircular3d({
@@ -321,6 +321,26 @@ const example = extrude(-5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/patternLinear2d.md b/docs/kcl/patternLinear2d.md
index 367c036f0..69bbfb9be 100644
--- a/docs/kcl/patternLinear2d.md
+++ b/docs/kcl/patternLinear2d.md
@@ -16,7 +16,7 @@ patternLinear2d(data: LinearPattern2dData, sketch_group_set: SketchGroupSet) ->
 
 ```js
 const exampleSketch = startSketchOn('XZ')
-  |> circle([0, 0], 1, %)
+  |> circle({ center: [0, 0], radius: 1 }, %)
   |> patternLinear2d({
        axis: [1, 0],
        repetitions: 6,
@@ -190,6 +190,26 @@ const example = extrude(1, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -400,6 +420,26 @@ const example = extrude(1, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/patternLinear3d.md b/docs/kcl/patternLinear3d.md
index 5fb31e5f4..a73ceda79 100644
--- a/docs/kcl/patternLinear3d.md
+++ b/docs/kcl/patternLinear3d.md
@@ -319,6 +319,26 @@ const example = extrude(1, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/patternTransform.md b/docs/kcl/patternTransform.md
index 5b3a03560..f9d03e666 100644
--- a/docs/kcl/patternTransform.md
+++ b/docs/kcl/patternTransform.md
@@ -32,7 +32,7 @@ fn transform = (replicaId) => {
 fn layer = () => {
   return startSketchOn("XY")
   // or some other plane idk
-  |> circle([0, 0], 1, %, $tag1)
+  |> circle({ center: [0, 0], radius: 1 }, %, $tag1)
   |> extrude(h, %)
 }
 // The vase is 100 layers tall.
@@ -321,6 +321,26 @@ let vase = layer()
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/pi.md b/docs/kcl/pi.md
index da61a12c0..3a21736fa 100644
--- a/docs/kcl/pi.md
+++ b/docs/kcl/pi.md
@@ -22,7 +22,10 @@ pi() -> number
 const circumference = 70
 
 const exampleSketch = startSketchOn("XZ")
-  |> circle([0, 0], circumference / (2 * pi()), %)
+  |> circle({
+       center: [0, 0],
+       radius: circumference / (2 * pi())
+     }, %)
 
 const example = extrude(5, exampleSketch)
 ```
diff --git a/docs/kcl/profileStart.md b/docs/kcl/profileStart.md
index 2abd0f627..28e4f6d92 100644
--- a/docs/kcl/profileStart.md
+++ b/docs/kcl/profileStart.md
@@ -180,6 +180,26 @@ const sketch001 = startSketchOn('XY')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -389,6 +409,26 @@ const sketch001 = startSketchOn('XY')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/profileStartX.md b/docs/kcl/profileStartX.md
index 37067715e..9cf3af4d9 100644
--- a/docs/kcl/profileStartX.md
+++ b/docs/kcl/profileStartX.md
@@ -22,7 +22,7 @@ const sketch001 = startSketchOn('XY')
   |> angledLineToX({ angle: 30, to: profileStartX(%) }, %)
 ```
 
-
+
 
 ### Arguments
 
@@ -175,6 +175,26 @@ const sketch001 = startSketchOn('XY')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -384,6 +404,26 @@ const sketch001 = startSketchOn('XY')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/profileStartY.md b/docs/kcl/profileStartY.md
index 1980831f6..d6e6bb288 100644
--- a/docs/kcl/profileStartY.md
+++ b/docs/kcl/profileStartY.md
@@ -21,7 +21,7 @@ const sketch001 = startSketchOn('XY')
   |> angledLineToY({ angle: 30, to: profileStartY(%) }, %)
 ```
 
-
+
 
 ### Arguments
 
@@ -174,6 +174,26 @@ const sketch001 = startSketchOn('XY')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -383,6 +403,26 @@ const sketch001 = startSketchOn('XY')
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/revolve.md b/docs/kcl/revolve.md
index fb908eef0..592689fc1 100644
--- a/docs/kcl/revolve.md
+++ b/docs/kcl/revolve.md
@@ -33,11 +33,11 @@ const part001 = startSketchOn('XY')
 ```js
 // A donut shape.
 const sketch001 = startSketchOn('XY')
-  |> circle([15, 0], 5, %)
+  |> circle({ center: [15, 0], radius: 5 }, %)
   |> revolve({ angle: 360, axis: 'y' }, %)
 ```
 
-
+
 
 ```js
 const part001 = startSketchOn('XY')
@@ -88,7 +88,7 @@ const box = startSketchOn('XY')
   |> extrude(20, %)
 
 const sketch001 = startSketchOn(box, "END")
-  |> circle([10, 10], 4, %)
+  |> circle({ center: [10, 10], radius: 4 }, %)
   |> revolve({ angle: -90, axis: 'y' }, %)
 ```
 
@@ -104,7 +104,7 @@ const box = startSketchOn('XY')
   |> extrude(20, %)
 
 const sketch001 = startSketchOn(box, "END")
-  |> circle([10, 10], 4, %)
+  |> circle({ center: [10, 10], radius: 4 }, %)
   |> revolve({
        angle: 90,
        axis: getOppositeEdge(revolveAxis)
@@ -123,7 +123,7 @@ const box = startSketchOn('XY')
   |> extrude(20, %)
 
 const sketch001 = startSketchOn(box, "END")
-  |> circle([10, 10], 4, %)
+  |> circle({ center: [10, 10], radius: 4 }, %)
   |> revolve({
        angle: 90,
        axis: getOppositeEdge(revolveAxis),
@@ -418,6 +418,26 @@ uuid |
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -627,6 +647,26 @@ uuid |
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -954,6 +994,26 @@ uuid |
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/shell.md b/docs/kcl/shell.md
index 14efa013e..49cdb190f 100644
--- a/docs/kcl/shell.md
+++ b/docs/kcl/shell.md
@@ -93,11 +93,17 @@ const case = startSketchOn('-XZ')
   |> extrude(65, %)
 
 const thing1 = startSketchOn(case, 'end')
-  |> circle([-size / 2, -size / 2], 25, %)
+  |> circle({
+       center: [-size / 2, -size / 2],
+       radius: 25
+     }, %)
   |> extrude(50, %)
 
 const thing2 = startSketchOn(case, 'end')
-  |> circle([size / 2, -size / 2], 25, %)
+  |> circle({
+       center: [size / 2, -size / 2],
+       radius: 25
+     }, %)
   |> extrude(50, %)
 
 // We put "case" in the shell function to shell the entire object.
@@ -118,11 +124,17 @@ const case = startSketchOn('XY')
   |> extrude(65, %)
 
 const thing1 = startSketchOn(case, 'end')
-  |> circle([-size / 2, -size / 2], 25, %)
+  |> circle({
+       center: [-size / 2, -size / 2],
+       radius: 25
+     }, %)
   |> extrude(50, %)
 
 const thing2 = startSketchOn(case, 'end')
-  |> circle([size / 2, -size / 2], 25, %)
+  |> circle({
+       center: [size / 2, -size / 2],
+       radius: 25
+     }, %)
   |> extrude(50, %)
 
 // We put "thing1" in the shell function to shell the end face of the object.
@@ -146,11 +158,17 @@ const case = startSketchOn('XY')
   |> extrude(65, %)
 
 const thing1 = startSketchOn(case, 'end')
-  |> circle([-size / 2, -size / 2], 25, %)
+  |> circle({
+       center: [-size / 2, -size / 2],
+       radius: 25
+     }, %)
   |> extrude(50, %)
 
 const thing2 = startSketchOn(case, 'end')
-  |> circle([size / 2, -size / 2], 25, %)
+  |> circle({
+       center: [size / 2, -size / 2],
+       radius: 25
+     }, %)
   |> extrude(50, %)
 
 // We put "thing1" and "thing2" in the shell function to shell the end face of the object.
@@ -533,6 +551,26 @@ shell({ faces: ['end'], thickness: 5 }, [thing1, thing2])
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -932,6 +970,26 @@ shell({ faces: ['end'], thickness: 5 }, [thing1, thing2])
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/startProfileAt.md b/docs/kcl/startProfileAt.md
index c4f854f3f..a5f06d938 100644
--- a/docs/kcl/startProfileAt.md
+++ b/docs/kcl/startProfileAt.md
@@ -258,6 +258,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -561,6 +581,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -770,6 +810,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/startSketchAt.md b/docs/kcl/startSketchAt.md
index 2ebdd57de..abdb35a62 100644
--- a/docs/kcl/startSketchAt.md
+++ b/docs/kcl/startSketchAt.md
@@ -205,6 +205,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -414,6 +434,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/startSketchOn.md b/docs/kcl/startSketchOn.md
index 5cf520808..fad626c98 100644
--- a/docs/kcl/startSketchOn.md
+++ b/docs/kcl/startSketchOn.md
@@ -327,6 +327,26 @@ const a1 = startSketchOn({
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -743,6 +763,26 @@ const a1 = startSketchOn({
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/std.json b/docs/kcl/std.json
index cfbfc84ef..fb954ce24 100644
--- a/docs/kcl/std.json
+++ b/docs/kcl/std.json
@@ -1915,6 +1915,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -3534,6 +3656,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -5725,6 +5969,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -7344,6 +7710,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -9105,6 +9593,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -10724,6 +11334,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -12464,6 +13196,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -14083,6 +14937,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -15834,6 +16810,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -17453,6 +18551,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -19193,6 +20413,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -20812,6 +22154,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -22563,6 +24027,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -24182,6 +25768,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -25922,6 +27630,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -27541,6 +29371,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -29735,6 +31687,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -31354,6 +33428,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -33094,6 +35290,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -34713,6 +37031,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -36449,6 +38889,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -38068,6 +40630,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -39808,6 +42492,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -41427,6 +44233,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -43163,6 +46091,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -44782,6 +47832,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -46522,6 +49694,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -48141,6 +51435,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -49924,6 +53340,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -51543,6 +55081,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -53283,6 +56943,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -54902,6 +58684,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -56626,6 +60530,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -58245,6 +62271,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -59953,6 +64101,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -61572,6 +65842,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -63676,6 +68068,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -65295,6 +69809,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -67035,6 +71671,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -68654,6 +73412,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -71448,6 +76328,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -74064,6 +79066,128 @@
                         }
                       }
                     },
+                    {
+                      "description": "a complete arc",
+                      "type": "object",
+                      "required": [
+                        "__geoMeta",
+                        "ccw",
+                        "center",
+                        "from",
+                        "radius",
+                        "to",
+                        "type"
+                      ],
+                      "properties": {
+                        "__geoMeta": {
+                          "description": "Metadata.",
+                          "type": "object",
+                          "required": [
+                            "id",
+                            "sourceRange"
+                          ],
+                          "properties": {
+                            "id": {
+                              "description": "The id of the geometry.",
+                              "type": "string",
+                              "format": "uuid"
+                            },
+                            "sourceRange": {
+                              "description": "The source range.",
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            }
+                          }
+                        },
+                        "ccw": {
+                          "description": "arc's direction",
+                          "type": "boolean"
+                        },
+                        "center": {
+                          "description": "the arc's center",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "from": {
+                          "description": "The from point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "radius": {
+                          "description": "the arc's radius",
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "tag": {
+                          "description": "The tag of the path.",
+                          "type": "object",
+                          "required": [
+                            "end",
+                            "start",
+                            "value"
+                          ],
+                          "properties": {
+                            "digest": {
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint8",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 32,
+                              "minItems": 32,
+                              "nullable": true
+                            },
+                            "end": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "start": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "value": {
+                              "type": "string"
+                            }
+                          },
+                          "nullable": true
+                        },
+                        "to": {
+                          "description": "The to point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "type": {
+                          "type": "string",
+                          "enum": [
+                            "Circle"
+                          ]
+                        }
+                      }
+                    },
                     {
                       "description": "A path that is horizontal.",
                       "type": "object",
@@ -74720,25 +79844,32 @@
     "tags": [],
     "args": [
       {
-        "name": "center",
-        "type": "[number]",
+        "name": "data",
+        "type": "CircleData",
         "schema": {
-          "type": "array",
-          "items": {
-            "type": "number",
-            "format": "double"
-          },
-          "maxItems": 2,
-          "minItems": 2
-        },
-        "required": true
-      },
-      {
-        "name": "radius",
-        "type": "number",
-        "schema": {
-          "type": "number",
-          "format": "double"
+          "description": "Data for drawing an circle",
+          "type": "object",
+          "required": [
+            "center",
+            "radius"
+          ],
+          "properties": {
+            "center": {
+              "description": "The center of the circle.",
+              "type": "array",
+              "items": {
+                "type": "number",
+                "format": "double"
+              },
+              "maxItems": 2,
+              "minItems": 2
+            },
+            "radius": {
+              "description": "The circle radius",
+              "type": "number",
+              "format": "double"
+            }
+          }
         },
         "required": true
       },
@@ -76079,6 +81210,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -78543,6 +83796,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -80285,6 +85660,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -81904,6 +87401,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -82232,8 +87851,8 @@
     "unpublished": false,
     "deprecated": false,
     "examples": [
-      "const exampleSketch = startSketchOn(\"-XZ\")\n  |> circle([0, 0], 10, %)\n\nconst example = extrude(5, exampleSketch)",
-      "const exampleSketch = startSketchOn(\"XZ\")\n  |> startProfileAt([-15, 0], %)\n  |> line([30, 0], %)\n  |> line([0, 30], %)\n  |> line([-30, 0], %)\n  |> close(%)\n  |> hole(circle([0, 15], 5, %), %)\n\nconst example = extrude(5, exampleSketch)"
+      "const exampleSketch = startSketchOn(\"-XZ\")\n  |> circle({ center: [0, 0], radius: 10 }, %)\n\nconst example = extrude(5, exampleSketch)",
+      "const exampleSketch = startSketchOn(\"XZ\")\n  |> startProfileAt([-15, 0], %)\n  |> line([30, 0], %)\n  |> line([0, 30], %)\n  |> line([-30, 0], %)\n  |> close(%)\n  |> hole(circle({ center: [0, 15], radius: 5 }, %), %)\n\nconst example = extrude(5, exampleSketch)"
     ]
   },
   {
@@ -83616,6 +89235,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -85235,6 +90976,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -86975,6 +92838,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -88594,6 +94579,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -90398,6 +96505,128 @@
                                           }
                                         }
                                       },
+                                      {
+                                        "description": "a complete arc",
+                                        "type": "object",
+                                        "required": [
+                                          "__geoMeta",
+                                          "ccw",
+                                          "center",
+                                          "from",
+                                          "radius",
+                                          "to",
+                                          "type"
+                                        ],
+                                        "properties": {
+                                          "__geoMeta": {
+                                            "description": "Metadata.",
+                                            "type": "object",
+                                            "required": [
+                                              "id",
+                                              "sourceRange"
+                                            ],
+                                            "properties": {
+                                              "id": {
+                                                "description": "The id of the geometry.",
+                                                "type": "string",
+                                                "format": "uuid"
+                                              },
+                                              "sourceRange": {
+                                                "description": "The source range.",
+                                                "type": "array",
+                                                "items": {
+                                                  "type": "integer",
+                                                  "format": "uint",
+                                                  "minimum": 0.0
+                                                },
+                                                "maxItems": 2,
+                                                "minItems": 2
+                                              }
+                                            }
+                                          },
+                                          "ccw": {
+                                            "description": "arc's direction",
+                                            "type": "boolean"
+                                          },
+                                          "center": {
+                                            "description": "the arc's center",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "from": {
+                                            "description": "The from point.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "radius": {
+                                            "description": "the arc's radius",
+                                            "type": "number",
+                                            "format": "double"
+                                          },
+                                          "tag": {
+                                            "description": "The tag of the path.",
+                                            "type": "object",
+                                            "required": [
+                                              "end",
+                                              "start",
+                                              "value"
+                                            ],
+                                            "properties": {
+                                              "digest": {
+                                                "type": "array",
+                                                "items": {
+                                                  "type": "integer",
+                                                  "format": "uint8",
+                                                  "minimum": 0.0
+                                                },
+                                                "maxItems": 32,
+                                                "minItems": 32,
+                                                "nullable": true
+                                              },
+                                              "end": {
+                                                "type": "integer",
+                                                "format": "uint",
+                                                "minimum": 0.0
+                                              },
+                                              "start": {
+                                                "type": "integer",
+                                                "format": "uint",
+                                                "minimum": 0.0
+                                              },
+                                              "value": {
+                                                "type": "string"
+                                              }
+                                            },
+                                            "nullable": true
+                                          },
+                                          "to": {
+                                            "description": "The to point.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "type": {
+                                            "type": "string",
+                                            "enum": [
+                                              "Circle"
+                                            ]
+                                          }
+                                        }
+                                      },
                                       {
                                         "description": "A path that is horizontal.",
                                         "type": "object",
@@ -92023,6 +98252,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -94087,6 +100438,128 @@
                             }
                           }
                         },
+                        {
+                          "description": "a complete arc",
+                          "type": "object",
+                          "required": [
+                            "__geoMeta",
+                            "ccw",
+                            "center",
+                            "from",
+                            "radius",
+                            "to",
+                            "type"
+                          ],
+                          "properties": {
+                            "__geoMeta": {
+                              "description": "Metadata.",
+                              "type": "object",
+                              "required": [
+                                "id",
+                                "sourceRange"
+                              ],
+                              "properties": {
+                                "id": {
+                                  "description": "The id of the geometry.",
+                                  "type": "string",
+                                  "format": "uuid"
+                                },
+                                "sourceRange": {
+                                  "description": "The source range.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                }
+                              }
+                            },
+                            "ccw": {
+                              "description": "arc's direction",
+                              "type": "boolean"
+                            },
+                            "center": {
+                              "description": "the arc's center",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "from": {
+                              "description": "The from point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "radius": {
+                              "description": "the arc's radius",
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "tag": {
+                              "description": "The tag of the path.",
+                              "type": "object",
+                              "required": [
+                                "end",
+                                "start",
+                                "value"
+                              ],
+                              "properties": {
+                                "digest": {
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint8",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 32,
+                                  "minItems": 32,
+                                  "nullable": true
+                                },
+                                "end": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "start": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "value": {
+                                  "type": "string"
+                                }
+                              },
+                              "nullable": true
+                            },
+                            "to": {
+                              "description": "The to point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "type": {
+                              "type": "string",
+                              "enum": [
+                                "Circle"
+                              ]
+                            }
+                          }
+                        },
                         {
                           "description": "A path that is horizontal.",
                           "type": "object",
@@ -96364,6 +102837,128 @@
                             }
                           }
                         },
+                        {
+                          "description": "a complete arc",
+                          "type": "object",
+                          "required": [
+                            "__geoMeta",
+                            "ccw",
+                            "center",
+                            "from",
+                            "radius",
+                            "to",
+                            "type"
+                          ],
+                          "properties": {
+                            "__geoMeta": {
+                              "description": "Metadata.",
+                              "type": "object",
+                              "required": [
+                                "id",
+                                "sourceRange"
+                              ],
+                              "properties": {
+                                "id": {
+                                  "description": "The id of the geometry.",
+                                  "type": "string",
+                                  "format": "uuid"
+                                },
+                                "sourceRange": {
+                                  "description": "The source range.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                }
+                              }
+                            },
+                            "ccw": {
+                              "description": "arc's direction",
+                              "type": "boolean"
+                            },
+                            "center": {
+                              "description": "the arc's center",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "from": {
+                              "description": "The from point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "radius": {
+                              "description": "the arc's radius",
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "tag": {
+                              "description": "The tag of the path.",
+                              "type": "object",
+                              "required": [
+                                "end",
+                                "start",
+                                "value"
+                              ],
+                              "properties": {
+                                "digest": {
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint8",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 32,
+                                  "minItems": 32,
+                                  "nullable": true
+                                },
+                                "end": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "start": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "value": {
+                                  "type": "string"
+                                }
+                              },
+                              "nullable": true
+                            },
+                            "to": {
+                              "description": "The to point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "type": {
+                              "type": "string",
+                              "enum": [
+                                "Circle"
+                              ]
+                            }
+                          }
+                        },
                         {
                           "description": "A path that is horizontal.",
                           "type": "object",
@@ -98434,6 +105029,128 @@
                               }
                             }
                           },
+                          {
+                            "description": "a complete arc",
+                            "type": "object",
+                            "required": [
+                              "__geoMeta",
+                              "ccw",
+                              "center",
+                              "from",
+                              "radius",
+                              "to",
+                              "type"
+                            ],
+                            "properties": {
+                              "__geoMeta": {
+                                "description": "Metadata.",
+                                "type": "object",
+                                "required": [
+                                  "id",
+                                  "sourceRange"
+                                ],
+                                "properties": {
+                                  "id": {
+                                    "description": "The id of the geometry.",
+                                    "type": "string",
+                                    "format": "uuid"
+                                  },
+                                  "sourceRange": {
+                                    "description": "The source range.",
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 2,
+                                    "minItems": 2
+                                  }
+                                }
+                              },
+                              "ccw": {
+                                "description": "arc's direction",
+                                "type": "boolean"
+                              },
+                              "center": {
+                                "description": "the arc's center",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "from": {
+                                "description": "The from point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "radius": {
+                                "description": "the arc's radius",
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "tag": {
+                                "description": "The tag of the path.",
+                                "type": "object",
+                                "required": [
+                                  "end",
+                                  "start",
+                                  "value"
+                                ],
+                                "properties": {
+                                  "digest": {
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint8",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 32,
+                                    "minItems": 32,
+                                    "nullable": true
+                                  },
+                                  "end": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "start": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "value": {
+                                    "type": "string"
+                                  }
+                                },
+                                "nullable": true
+                              },
+                              "to": {
+                                "description": "The to point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "type": {
+                                "type": "string",
+                                "enum": [
+                                  "Circle"
+                                ]
+                              }
+                            }
+                          },
                           {
                             "description": "A path that is horizontal.",
                             "type": "object",
@@ -101534,6 +108251,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -104150,6 +110989,128 @@
                         }
                       }
                     },
+                    {
+                      "description": "a complete arc",
+                      "type": "object",
+                      "required": [
+                        "__geoMeta",
+                        "ccw",
+                        "center",
+                        "from",
+                        "radius",
+                        "to",
+                        "type"
+                      ],
+                      "properties": {
+                        "__geoMeta": {
+                          "description": "Metadata.",
+                          "type": "object",
+                          "required": [
+                            "id",
+                            "sourceRange"
+                          ],
+                          "properties": {
+                            "id": {
+                              "description": "The id of the geometry.",
+                              "type": "string",
+                              "format": "uuid"
+                            },
+                            "sourceRange": {
+                              "description": "The source range.",
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            }
+                          }
+                        },
+                        "ccw": {
+                          "description": "arc's direction",
+                          "type": "boolean"
+                        },
+                        "center": {
+                          "description": "the arc's center",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "from": {
+                          "description": "The from point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "radius": {
+                          "description": "the arc's radius",
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "tag": {
+                          "description": "The tag of the path.",
+                          "type": "object",
+                          "required": [
+                            "end",
+                            "start",
+                            "value"
+                          ],
+                          "properties": {
+                            "digest": {
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint8",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 32,
+                              "minItems": 32,
+                              "nullable": true
+                            },
+                            "end": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "start": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "value": {
+                              "type": "string"
+                            }
+                          },
+                          "nullable": true
+                        },
+                        "to": {
+                          "description": "The to point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "type": {
+                          "type": "string",
+                          "enum": [
+                            "Circle"
+                          ]
+                        }
+                      }
+                    },
                     {
                       "description": "A path that is horizontal.",
                       "type": "object",
@@ -108279,6 +115240,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -110855,6 +117938,128 @@
                         }
                       }
                     },
+                    {
+                      "description": "a complete arc",
+                      "type": "object",
+                      "required": [
+                        "__geoMeta",
+                        "ccw",
+                        "center",
+                        "from",
+                        "radius",
+                        "to",
+                        "type"
+                      ],
+                      "properties": {
+                        "__geoMeta": {
+                          "description": "Metadata.",
+                          "type": "object",
+                          "required": [
+                            "id",
+                            "sourceRange"
+                          ],
+                          "properties": {
+                            "id": {
+                              "description": "The id of the geometry.",
+                              "type": "string",
+                              "format": "uuid"
+                            },
+                            "sourceRange": {
+                              "description": "The source range.",
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            }
+                          }
+                        },
+                        "ccw": {
+                          "description": "arc's direction",
+                          "type": "boolean"
+                        },
+                        "center": {
+                          "description": "the arc's center",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "from": {
+                          "description": "The from point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "radius": {
+                          "description": "the arc's radius",
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "tag": {
+                          "description": "The tag of the path.",
+                          "type": "object",
+                          "required": [
+                            "end",
+                            "start",
+                            "value"
+                          ],
+                          "properties": {
+                            "digest": {
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint8",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 32,
+                              "minItems": 32,
+                              "nullable": true
+                            },
+                            "end": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "start": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "value": {
+                              "type": "string"
+                            }
+                          },
+                          "nullable": true
+                        },
+                        "to": {
+                          "description": "The to point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "type": {
+                          "type": "string",
+                          "enum": [
+                            "Circle"
+                          ]
+                        }
+                      }
+                    },
                     {
                       "description": "A path that is horizontal.",
                       "type": "object",
@@ -111500,7 +118705,7 @@
     "unpublished": false,
     "deprecated": false,
     "examples": [
-      "const part001 = startSketchOn('XY')\n  |> circle([5, 5], 10, %)\n  |> extrude(10, %)\n  |> helix({\n       angleStart: 0,\n       ccw: true,\n       revolutions: 16\n     }, %)"
+      "const part001 = startSketchOn('XY')\n  |> circle({ center: [5, 5], radius: 10 }, %)\n  |> extrude(10, %)\n  |> helix({\n       angleStart: 0,\n       ccw: true,\n       revolutions: 16\n     }, %)"
     ]
   },
   {
@@ -112887,6 +120092,128 @@
                                           }
                                         }
                                       },
+                                      {
+                                        "description": "a complete arc",
+                                        "type": "object",
+                                        "required": [
+                                          "__geoMeta",
+                                          "ccw",
+                                          "center",
+                                          "from",
+                                          "radius",
+                                          "to",
+                                          "type"
+                                        ],
+                                        "properties": {
+                                          "__geoMeta": {
+                                            "description": "Metadata.",
+                                            "type": "object",
+                                            "required": [
+                                              "id",
+                                              "sourceRange"
+                                            ],
+                                            "properties": {
+                                              "id": {
+                                                "description": "The id of the geometry.",
+                                                "type": "string",
+                                                "format": "uuid"
+                                              },
+                                              "sourceRange": {
+                                                "description": "The source range.",
+                                                "type": "array",
+                                                "items": {
+                                                  "type": "integer",
+                                                  "format": "uint",
+                                                  "minimum": 0.0
+                                                },
+                                                "maxItems": 2,
+                                                "minItems": 2
+                                              }
+                                            }
+                                          },
+                                          "ccw": {
+                                            "description": "arc's direction",
+                                            "type": "boolean"
+                                          },
+                                          "center": {
+                                            "description": "the arc's center",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "from": {
+                                            "description": "The from point.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "radius": {
+                                            "description": "the arc's radius",
+                                            "type": "number",
+                                            "format": "double"
+                                          },
+                                          "tag": {
+                                            "description": "The tag of the path.",
+                                            "type": "object",
+                                            "required": [
+                                              "end",
+                                              "start",
+                                              "value"
+                                            ],
+                                            "properties": {
+                                              "digest": {
+                                                "type": "array",
+                                                "items": {
+                                                  "type": "integer",
+                                                  "format": "uint8",
+                                                  "minimum": 0.0
+                                                },
+                                                "maxItems": 32,
+                                                "minItems": 32,
+                                                "nullable": true
+                                              },
+                                              "end": {
+                                                "type": "integer",
+                                                "format": "uint",
+                                                "minimum": 0.0
+                                              },
+                                              "start": {
+                                                "type": "integer",
+                                                "format": "uint",
+                                                "minimum": 0.0
+                                              },
+                                              "value": {
+                                                "type": "string"
+                                              }
+                                            },
+                                            "nullable": true
+                                          },
+                                          "to": {
+                                            "description": "The to point.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "type": {
+                                            "type": "string",
+                                            "enum": [
+                                              "Circle"
+                                            ]
+                                          }
+                                        }
+                                      },
                                       {
                                         "description": "A path that is horizontal.",
                                         "type": "object",
@@ -114512,6 +121839,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -116576,6 +124025,128 @@
                             }
                           }
                         },
+                        {
+                          "description": "a complete arc",
+                          "type": "object",
+                          "required": [
+                            "__geoMeta",
+                            "ccw",
+                            "center",
+                            "from",
+                            "radius",
+                            "to",
+                            "type"
+                          ],
+                          "properties": {
+                            "__geoMeta": {
+                              "description": "Metadata.",
+                              "type": "object",
+                              "required": [
+                                "id",
+                                "sourceRange"
+                              ],
+                              "properties": {
+                                "id": {
+                                  "description": "The id of the geometry.",
+                                  "type": "string",
+                                  "format": "uuid"
+                                },
+                                "sourceRange": {
+                                  "description": "The source range.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                }
+                              }
+                            },
+                            "ccw": {
+                              "description": "arc's direction",
+                              "type": "boolean"
+                            },
+                            "center": {
+                              "description": "the arc's center",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "from": {
+                              "description": "The from point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "radius": {
+                              "description": "the arc's radius",
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "tag": {
+                              "description": "The tag of the path.",
+                              "type": "object",
+                              "required": [
+                                "end",
+                                "start",
+                                "value"
+                              ],
+                              "properties": {
+                                "digest": {
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint8",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 32,
+                                  "minItems": 32,
+                                  "nullable": true
+                                },
+                                "end": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "start": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "value": {
+                                  "type": "string"
+                                }
+                              },
+                              "nullable": true
+                            },
+                            "to": {
+                              "description": "The to point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "type": {
+                              "type": "string",
+                              "enum": [
+                                "Circle"
+                              ]
+                            }
+                          }
+                        },
                         {
                           "description": "A path that is horizontal.",
                           "type": "object",
@@ -118289,6 +125860,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -119908,6 +127601,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -121608,6 +129423,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -123227,6 +131164,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -123555,8 +131614,8 @@
     "unpublished": false,
     "deprecated": false,
     "examples": [
-      "const exampleSketch = startSketchOn('XY')\n  |> startProfileAt([0, 0], %)\n  |> line([0, 5], %)\n  |> line([5, 0], %)\n  |> line([0, -5], %)\n  |> close(%)\n  |> hole(circle([1, 1], .25, %), %)\n  |> hole(circle([1, 4], .25, %), %)\n\nconst example = extrude(1, exampleSketch)",
-      "fn squareHoleSketch = () => {\n  const squareSketch = startSketchOn('-XZ')\n    |> startProfileAt([-1, -1], %)\n    |> line([2, 0], %)\n    |> line([0, 2], %)\n    |> line([-2, 0], %)\n    |> close(%)\n  return squareSketch\n}\n\nconst exampleSketch = startSketchOn('-XZ')\n  |> circle([0, 0], 3, %)\n  |> hole(squareHoleSketch(), %)\nconst example = extrude(1, exampleSketch)"
+      "const exampleSketch = startSketchOn('XY')\n  |> startProfileAt([0, 0], %)\n  |> line([0, 5], %)\n  |> line([5, 0], %)\n  |> line([0, -5], %)\n  |> close(%)\n  |> hole(circle({ center: [1, 1], radius: .25 }, %), %)\n  |> hole(circle({ center: [1, 4], radius: .25 }, %), %)\n\nconst example = extrude(1, exampleSketch)",
+      "fn squareHoleSketch = () => {\n  const squareSketch = startSketchOn('-XZ')\n    |> startProfileAt([-1, -1], %)\n    |> line([2, 0], %)\n    |> line([0, 2], %)\n    |> line([-2, 0], %)\n    |> close(%)\n  return squareSketch\n}\n\nconst exampleSketch = startSketchOn('-XZ')\n  |> circle({ center: [0, 0], radius: 3 }, %)\n  |> hole(squareHoleSketch(), %)\nconst example = extrude(1, exampleSketch)"
     ]
   },
   {
@@ -125507,6 +133566,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -128083,6 +136264,128 @@
                         }
                       }
                     },
+                    {
+                      "description": "a complete arc",
+                      "type": "object",
+                      "required": [
+                        "__geoMeta",
+                        "ccw",
+                        "center",
+                        "from",
+                        "radius",
+                        "to",
+                        "type"
+                      ],
+                      "properties": {
+                        "__geoMeta": {
+                          "description": "Metadata.",
+                          "type": "object",
+                          "required": [
+                            "id",
+                            "sourceRange"
+                          ],
+                          "properties": {
+                            "id": {
+                              "description": "The id of the geometry.",
+                              "type": "string",
+                              "format": "uuid"
+                            },
+                            "sourceRange": {
+                              "description": "The source range.",
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            }
+                          }
+                        },
+                        "ccw": {
+                          "description": "arc's direction",
+                          "type": "boolean"
+                        },
+                        "center": {
+                          "description": "the arc's center",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "from": {
+                          "description": "The from point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "radius": {
+                          "description": "the arc's radius",
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "tag": {
+                          "description": "The tag of the path.",
+                          "type": "object",
+                          "required": [
+                            "end",
+                            "start",
+                            "value"
+                          ],
+                          "properties": {
+                            "digest": {
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint8",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 32,
+                              "minItems": 32,
+                              "nullable": true
+                            },
+                            "end": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "start": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "value": {
+                              "type": "string"
+                            }
+                          },
+                          "nullable": true
+                        },
+                        "to": {
+                          "description": "The to point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "type": {
+                          "type": "string",
+                          "enum": [
+                            "Circle"
+                          ]
+                        }
+                      }
+                    },
                     {
                       "description": "A path that is horizontal.",
                       "type": "object",
@@ -128730,7 +137033,7 @@
     "examples": [
       "// Hollow a basic sketch.\nconst firstSketch = startSketchOn('XY')\n  |> startProfileAt([-12, 12], %)\n  |> line([24, 0], %)\n  |> line([0, -24], %)\n  |> line([-24, 0], %)\n  |> close(%)\n  |> extrude(6, %)\n  |> hollow(0.25, %)",
       "// Hollow a basic sketch.\nconst firstSketch = startSketchOn('-XZ')\n  |> startProfileAt([-12, 12], %)\n  |> line([24, 0], %)\n  |> line([0, -24], %)\n  |> line([-24, 0], %)\n  |> close(%)\n  |> extrude(6, %)\n  |> hollow(0.5, %)",
-      "// Hollow a sketch on face object.\nlet size = 100\nconst case = startSketchOn('-XZ')\n  |> startProfileAt([-size, -size], %)\n  |> line([2 * size, 0], %)\n  |> line([0, 2 * size], %)\n  |> tangentialArcTo([-size, size], %)\n  |> close(%)\n  |> extrude(65, %)\n\nconst thing1 = startSketchOn(case, 'end')\n  |> circle([-size / 2, -size / 2], 25, %)\n  |> extrude(50, %)\n\nconst thing2 = startSketchOn(case, 'end')\n  |> circle([size / 2, -size / 2], 25, %)\n  |> extrude(50, %)\n\nhollow(0.5, case)"
+      "// Hollow a sketch on face object.\nlet size = 100\nconst case = startSketchOn('-XZ')\n  |> startProfileAt([-size, -size], %)\n  |> line([2 * size, 0], %)\n  |> line([0, 2 * size], %)\n  |> tangentialArcTo([-size, size], %)\n  |> close(%)\n  |> extrude(65, %)\n\nconst thing1 = startSketchOn(case, 'end')\n  |> circle({\n       center: [-size / 2, -size / 2],\n       radius: 25\n     }, %)\n  |> extrude(50, %)\n\nconst thing2 = startSketchOn(case, 'end')\n  |> circle({\n       center: [size / 2, -size / 2],\n       radius: 25\n     }, %)\n  |> extrude(50, %)\n\nhollow(0.5, case)"
     ]
   },
   {
@@ -129443,7 +137746,7 @@
     "unpublished": false,
     "deprecated": false,
     "examples": [
-      "const sketch001 = startSketchOn('XZ')\n  |> circle([0, 0], 2, %)\nconst extrude001 = extrude(5, sketch001)\n\nconst pattern01 = patternTransform(int(ceil(5 / 2)), (id) => {\n  return { translate: [4 * id, 0, 0] }\n}, extrude001)"
+      "const sketch001 = startSketchOn('XZ')\n  |> circle({ center: [0, 0], radius: 2 }, %)\nconst extrude001 = extrude(5, sketch001)\n\nconst pattern01 = patternTransform(int(ceil(5 / 2)), (id) => {\n  return { translate: [4 * id, 0, 0] }\n}, extrude001)"
     ]
   },
   {
@@ -130826,6 +139129,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -132445,6 +140870,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -134166,6 +142713,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -135785,6 +144454,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -137646,6 +146437,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -139265,6 +148178,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -141005,6 +150040,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -142624,6 +151781,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -144350,6 +153629,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -145969,6 +155370,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -147709,6 +157232,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -149328,6 +158973,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -151439,6 +161206,128 @@
                         }
                       }
                     },
+                    {
+                      "description": "a complete arc",
+                      "type": "object",
+                      "required": [
+                        "__geoMeta",
+                        "ccw",
+                        "center",
+                        "from",
+                        "radius",
+                        "to",
+                        "type"
+                      ],
+                      "properties": {
+                        "__geoMeta": {
+                          "description": "Metadata.",
+                          "type": "object",
+                          "required": [
+                            "id",
+                            "sourceRange"
+                          ],
+                          "properties": {
+                            "id": {
+                              "description": "The id of the geometry.",
+                              "type": "string",
+                              "format": "uuid"
+                            },
+                            "sourceRange": {
+                              "description": "The source range.",
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            }
+                          }
+                        },
+                        "ccw": {
+                          "description": "arc's direction",
+                          "type": "boolean"
+                        },
+                        "center": {
+                          "description": "the arc's center",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "from": {
+                          "description": "The from point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "radius": {
+                          "description": "the arc's radius",
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "tag": {
+                          "description": "The tag of the path.",
+                          "type": "object",
+                          "required": [
+                            "end",
+                            "start",
+                            "value"
+                          ],
+                          "properties": {
+                            "digest": {
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint8",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 32,
+                              "minItems": 32,
+                              "nullable": true
+                            },
+                            "end": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "start": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "value": {
+                              "type": "string"
+                            }
+                          },
+                          "nullable": true
+                        },
+                        "to": {
+                          "description": "The to point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "type": {
+                          "type": "string",
+                          "enum": [
+                            "Circle"
+                          ]
+                        }
+                      }
+                    },
                     {
                       "description": "A path that is horizontal.",
                       "type": "object",
@@ -153739,6 +163628,128 @@
                         }
                       }
                     },
+                    {
+                      "description": "a complete arc",
+                      "type": "object",
+                      "required": [
+                        "__geoMeta",
+                        "ccw",
+                        "center",
+                        "from",
+                        "radius",
+                        "to",
+                        "type"
+                      ],
+                      "properties": {
+                        "__geoMeta": {
+                          "description": "Metadata.",
+                          "type": "object",
+                          "required": [
+                            "id",
+                            "sourceRange"
+                          ],
+                          "properties": {
+                            "id": {
+                              "description": "The id of the geometry.",
+                              "type": "string",
+                              "format": "uuid"
+                            },
+                            "sourceRange": {
+                              "description": "The source range.",
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            }
+                          }
+                        },
+                        "ccw": {
+                          "description": "arc's direction",
+                          "type": "boolean"
+                        },
+                        "center": {
+                          "description": "the arc's center",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "from": {
+                          "description": "The from point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "radius": {
+                          "description": "the arc's radius",
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "tag": {
+                          "description": "The tag of the path.",
+                          "type": "object",
+                          "required": [
+                            "end",
+                            "start",
+                            "value"
+                          ],
+                          "properties": {
+                            "digest": {
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint8",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 32,
+                              "minItems": 32,
+                              "nullable": true
+                            },
+                            "end": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "start": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "value": {
+                              "type": "string"
+                            }
+                          },
+                          "nullable": true
+                        },
+                        "to": {
+                          "description": "The to point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "type": {
+                          "type": "string",
+                          "enum": [
+                            "Circle"
+                          ]
+                        }
+                      }
+                    },
                     {
                       "description": "A path that is horizontal.",
                       "type": "object",
@@ -154385,8 +164396,8 @@
     "deprecated": false,
     "examples": [
       "// Loft a square and a triangle.\nconst squareSketch = startSketchOn('XY')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst triangleSketch = startSketchOn(offsetPlane('XY', 75))\n  |> startProfileAt([0, 125], %)\n  |> line([-15, -30], %)\n  |> line([30, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nloft([squareSketch, triangleSketch])",
-      "// Loft a square, a circle, and another circle.\nconst squareSketch = startSketchOn('XY')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch0 = startSketchOn(offsetPlane('XY', 75))\n  |> circle([0, 100], 50, %)\n\nconst circleSketch1 = startSketchOn(offsetPlane('XY', 150))\n  |> circle([0, 100], 20, %)\n\nloft([\n  squareSketch,\n  circleSketch0,\n  circleSketch1\n])",
-      "// Loft a square, a circle, and another circle with options.\nconst squareSketch = startSketchOn('XY')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch0 = startSketchOn(offsetPlane('XY', 75))\n  |> circle([0, 100], 50, %)\n\nconst circleSketch1 = startSketchOn(offsetPlane('XY', 150))\n  |> circle([0, 100], 20, %)\n\nloft([\n  squareSketch,\n  circleSketch0,\n  circleSketch1\n], {\n  // This can be set to override the automatically determined\n  // topological base curve, which is usually the first section encountered.\n  baseCurveIndex: 0,\n  // Attempt to approximate rational curves (such as arcs) using a bezier.\n  // This will remove banding around interpolations between arcs and non-arcs.\n  // It may produce errors in other scenarios Over time, this field won't be necessary.\n  bezApproximateRational: false,\n  // Tolerance for the loft operation.\n  tolerance: 0.000001,\n  // Degree of the interpolation. Must be greater than zero.\n  // For example, use 2 for quadratic, or 3 for cubic interpolation in\n  // the V direction. This defaults to 2, if not specified.\n  vDegree: 2\n})"
+      "// Loft a square, a circle, and another circle.\nconst squareSketch = startSketchOn('XY')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch0 = startSketchOn(offsetPlane('XY', 75))\n  |> circle({ center: [0, 100], radius: 50 }, %)\n\nconst circleSketch1 = startSketchOn(offsetPlane('XY', 150))\n  |> circle({ center: [0, 100], radius: 20 }, %)\n\nloft([\n  squareSketch,\n  circleSketch0,\n  circleSketch1\n])",
+      "// Loft a square, a circle, and another circle with options.\nconst squareSketch = startSketchOn('XY')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch0 = startSketchOn(offsetPlane('XY', 75))\n  |> circle({ center: [0, 100], radius: 50 }, %)\n\nconst circleSketch1 = startSketchOn(offsetPlane('XY', 150))\n  |> circle({ center: [0, 100], radius: 20 }, %)\n\nloft([\n  squareSketch,\n  circleSketch0,\n  circleSketch1\n], {\n  // This can be set to override the automatically determined\n  // topological base curve, which is usually the first section encountered.\n  baseCurveIndex: 0,\n  // Attempt to approximate rational curves (such as arcs) using a bezier.\n  // This will remove banding around interpolations between arcs and non-arcs.\n  // It may produce errors in other scenarios Over time, this field won't be necessary.\n  bezApproximateRational: false,\n  // Tolerance for the loft operation.\n  tolerance: 0.000001,\n  // Degree of the interpolation. Must be greater than zero.\n  // For example, use 2 for quadratic, or 3 for cubic interpolation in\n  // the V direction. This defaults to 2, if not specified.\n  vDegree: 2\n})"
     ]
   },
   {
@@ -154851,10 +164862,10 @@
     "unpublished": false,
     "deprecated": false,
     "examples": [
-      "// Loft a square and a circle on the `XY` plane using offset.\nconst squareSketch = startSketchOn('XY')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch = startSketchOn(offsetPlane('XY', 150))\n  |> circle([0, 100], 50, %)\n\nloft([squareSketch, circleSketch])",
-      "// Loft a square and a circle on the `XZ` plane using offset.\nconst squareSketch = startSketchOn('XZ')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch = startSketchOn(offsetPlane('XZ', 150))\n  |> circle([0, 100], 50, %)\n\nloft([squareSketch, circleSketch])",
-      "// Loft a square and a circle on the `YZ` plane using offset.\nconst squareSketch = startSketchOn('YZ')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch = startSketchOn(offsetPlane('YZ', 150))\n  |> circle([0, 100], 50, %)\n\nloft([squareSketch, circleSketch])",
-      "// Loft a square and a circle on the `-XZ` plane using offset.\nconst squareSketch = startSketchOn('-XZ')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch = startSketchOn(offsetPlane('-XZ', -150))\n  |> circle([0, 100], 50, %)\n\nloft([squareSketch, circleSketch])"
+      "// Loft a square and a circle on the `XY` plane using offset.\nconst squareSketch = startSketchOn('XY')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch = startSketchOn(offsetPlane('XY', 150))\n  |> circle({ center: [0, 100], radius: 50 }, %)\n\nloft([squareSketch, circleSketch])",
+      "// Loft a square and a circle on the `XZ` plane using offset.\nconst squareSketch = startSketchOn('XZ')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch = startSketchOn(offsetPlane('XZ', 150))\n  |> circle({ center: [0, 100], radius: 50 }, %)\n\nloft([squareSketch, circleSketch])",
+      "// Loft a square and a circle on the `YZ` plane using offset.\nconst squareSketch = startSketchOn('YZ')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch = startSketchOn(offsetPlane('YZ', 150))\n  |> circle({ center: [0, 100], radius: 50 }, %)\n\nloft([squareSketch, circleSketch])",
+      "// Loft a square and a circle on the `-XZ` plane using offset.\nconst squareSketch = startSketchOn('-XZ')\n  |> startProfileAt([-100, 200], %)\n  |> line([200, 0], %)\n  |> line([0, -200], %)\n  |> line([-200, 0], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst circleSketch = startSketchOn(offsetPlane('-XZ', -150))\n  |> circle({ center: [0, 100], radius: 50 }, %)\n\nloft([squareSketch, circleSketch])"
     ]
   },
   {
@@ -156283,6 +166294,128 @@
                                           }
                                         }
                                       },
+                                      {
+                                        "description": "a complete arc",
+                                        "type": "object",
+                                        "required": [
+                                          "__geoMeta",
+                                          "ccw",
+                                          "center",
+                                          "from",
+                                          "radius",
+                                          "to",
+                                          "type"
+                                        ],
+                                        "properties": {
+                                          "__geoMeta": {
+                                            "description": "Metadata.",
+                                            "type": "object",
+                                            "required": [
+                                              "id",
+                                              "sourceRange"
+                                            ],
+                                            "properties": {
+                                              "id": {
+                                                "description": "The id of the geometry.",
+                                                "type": "string",
+                                                "format": "uuid"
+                                              },
+                                              "sourceRange": {
+                                                "description": "The source range.",
+                                                "type": "array",
+                                                "items": {
+                                                  "type": "integer",
+                                                  "format": "uint",
+                                                  "minimum": 0.0
+                                                },
+                                                "maxItems": 2,
+                                                "minItems": 2
+                                              }
+                                            }
+                                          },
+                                          "ccw": {
+                                            "description": "arc's direction",
+                                            "type": "boolean"
+                                          },
+                                          "center": {
+                                            "description": "the arc's center",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "from": {
+                                            "description": "The from point.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "radius": {
+                                            "description": "the arc's radius",
+                                            "type": "number",
+                                            "format": "double"
+                                          },
+                                          "tag": {
+                                            "description": "The tag of the path.",
+                                            "type": "object",
+                                            "required": [
+                                              "end",
+                                              "start",
+                                              "value"
+                                            ],
+                                            "properties": {
+                                              "digest": {
+                                                "type": "array",
+                                                "items": {
+                                                  "type": "integer",
+                                                  "format": "uint8",
+                                                  "minimum": 0.0
+                                                },
+                                                "maxItems": 32,
+                                                "minItems": 32,
+                                                "nullable": true
+                                              },
+                                              "end": {
+                                                "type": "integer",
+                                                "format": "uint",
+                                                "minimum": 0.0
+                                              },
+                                              "start": {
+                                                "type": "integer",
+                                                "format": "uint",
+                                                "minimum": 0.0
+                                              },
+                                              "value": {
+                                                "type": "string"
+                                              }
+                                            },
+                                            "nullable": true
+                                          },
+                                          "to": {
+                                            "description": "The to point.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "type": {
+                                            "type": "string",
+                                            "enum": [
+                                              "Circle"
+                                            ]
+                                          }
+                                        }
+                                      },
                                       {
                                         "description": "A path that is horizontal.",
                                         "type": "object",
@@ -157908,6 +168041,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -159972,6 +170227,128 @@
                             }
                           }
                         },
+                        {
+                          "description": "a complete arc",
+                          "type": "object",
+                          "required": [
+                            "__geoMeta",
+                            "ccw",
+                            "center",
+                            "from",
+                            "radius",
+                            "to",
+                            "type"
+                          ],
+                          "properties": {
+                            "__geoMeta": {
+                              "description": "Metadata.",
+                              "type": "object",
+                              "required": [
+                                "id",
+                                "sourceRange"
+                              ],
+                              "properties": {
+                                "id": {
+                                  "description": "The id of the geometry.",
+                                  "type": "string",
+                                  "format": "uuid"
+                                },
+                                "sourceRange": {
+                                  "description": "The source range.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                }
+                              }
+                            },
+                            "ccw": {
+                              "description": "arc's direction",
+                              "type": "boolean"
+                            },
+                            "center": {
+                              "description": "the arc's center",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "from": {
+                              "description": "The from point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "radius": {
+                              "description": "the arc's radius",
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "tag": {
+                              "description": "The tag of the path.",
+                              "type": "object",
+                              "required": [
+                                "end",
+                                "start",
+                                "value"
+                              ],
+                              "properties": {
+                                "digest": {
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint8",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 32,
+                                  "minItems": 32,
+                                  "nullable": true
+                                },
+                                "end": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "start": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "value": {
+                                  "type": "string"
+                                }
+                              },
+                              "nullable": true
+                            },
+                            "to": {
+                              "description": "The to point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "type": {
+                              "type": "string",
+                              "enum": [
+                                "Circle"
+                              ]
+                            }
+                          }
+                        },
                         {
                           "description": "A path that is horizontal.",
                           "type": "object",
@@ -162053,6 +172430,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -164381,6 +174880,128 @@
                               }
                             }
                           },
+                          {
+                            "description": "a complete arc",
+                            "type": "object",
+                            "required": [
+                              "__geoMeta",
+                              "ccw",
+                              "center",
+                              "from",
+                              "radius",
+                              "to",
+                              "type"
+                            ],
+                            "properties": {
+                              "__geoMeta": {
+                                "description": "Metadata.",
+                                "type": "object",
+                                "required": [
+                                  "id",
+                                  "sourceRange"
+                                ],
+                                "properties": {
+                                  "id": {
+                                    "description": "The id of the geometry.",
+                                    "type": "string",
+                                    "format": "uuid"
+                                  },
+                                  "sourceRange": {
+                                    "description": "The source range.",
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 2,
+                                    "minItems": 2
+                                  }
+                                }
+                              },
+                              "ccw": {
+                                "description": "arc's direction",
+                                "type": "boolean"
+                              },
+                              "center": {
+                                "description": "the arc's center",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "from": {
+                                "description": "The from point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "radius": {
+                                "description": "the arc's radius",
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "tag": {
+                                "description": "The tag of the path.",
+                                "type": "object",
+                                "required": [
+                                  "end",
+                                  "start",
+                                  "value"
+                                ],
+                                "properties": {
+                                  "digest": {
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint8",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 32,
+                                    "minItems": 32,
+                                    "nullable": true
+                                  },
+                                  "end": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "start": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "value": {
+                                    "type": "string"
+                                  }
+                                },
+                                "nullable": true
+                              },
+                              "to": {
+                                "description": "The to point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "type": {
+                                "type": "string",
+                                "enum": [
+                                  "Circle"
+                                ]
+                              }
+                            }
+                          },
                           {
                             "description": "A path that is horizontal.",
                             "type": "object",
@@ -166451,6 +177072,128 @@
                                 }
                               }
                             },
+                            {
+                              "description": "a complete arc",
+                              "type": "object",
+                              "required": [
+                                "__geoMeta",
+                                "ccw",
+                                "center",
+                                "from",
+                                "radius",
+                                "to",
+                                "type"
+                              ],
+                              "properties": {
+                                "__geoMeta": {
+                                  "description": "Metadata.",
+                                  "type": "object",
+                                  "required": [
+                                    "id",
+                                    "sourceRange"
+                                  ],
+                                  "properties": {
+                                    "id": {
+                                      "description": "The id of the geometry.",
+                                      "type": "string",
+                                      "format": "uuid"
+                                    },
+                                    "sourceRange": {
+                                      "description": "The source range.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "integer",
+                                        "format": "uint",
+                                        "minimum": 0.0
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    }
+                                  }
+                                },
+                                "ccw": {
+                                  "description": "arc's direction",
+                                  "type": "boolean"
+                                },
+                                "center": {
+                                  "description": "the arc's center",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "from": {
+                                  "description": "The from point.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "radius": {
+                                  "description": "the arc's radius",
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "tag": {
+                                  "description": "The tag of the path.",
+                                  "type": "object",
+                                  "required": [
+                                    "end",
+                                    "start",
+                                    "value"
+                                  ],
+                                  "properties": {
+                                    "digest": {
+                                      "type": "array",
+                                      "items": {
+                                        "type": "integer",
+                                        "format": "uint8",
+                                        "minimum": 0.0
+                                      },
+                                      "maxItems": 32,
+                                      "minItems": 32,
+                                      "nullable": true
+                                    },
+                                    "end": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "start": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "value": {
+                                      "type": "string"
+                                    }
+                                  },
+                                  "nullable": true
+                                },
+                                "to": {
+                                  "description": "The to point.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "type": {
+                                  "type": "string",
+                                  "enum": [
+                                    "Circle"
+                                  ]
+                                }
+                              }
+                            },
                             {
                               "description": "A path that is horizontal.",
                               "type": "object",
@@ -168532,6 +179275,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -169178,7 +180043,7 @@
     "unpublished": false,
     "deprecated": false,
     "examples": [
-      "const exampleSketch = startSketchOn('XZ')\n  |> circle([0, 0], 1, %)\n\nconst example = extrude(-5, exampleSketch)\n  |> patternCircular3d({\n       axis: [1, -1, 0],\n       center: [10, -20, 0],\n       repetitions: 10,\n       arcDegrees: 360,\n       rotateDuplicates: true\n     }, %)"
+      "const exampleSketch = startSketchOn('XZ')\n  |> circle({ center: [0, 0], radius: 1 }, %)\n\nconst example = extrude(-5, exampleSketch)\n  |> patternCircular3d({\n       axis: [1, -1, 0],\n       center: [10, -20, 0],\n       repetitions: 10,\n       arcDegrees: 360,\n       rotateDuplicates: true\n     }, %)"
     ]
   },
   {
@@ -170602,6 +181467,128 @@
                                           }
                                         }
                                       },
+                                      {
+                                        "description": "a complete arc",
+                                        "type": "object",
+                                        "required": [
+                                          "__geoMeta",
+                                          "ccw",
+                                          "center",
+                                          "from",
+                                          "radius",
+                                          "to",
+                                          "type"
+                                        ],
+                                        "properties": {
+                                          "__geoMeta": {
+                                            "description": "Metadata.",
+                                            "type": "object",
+                                            "required": [
+                                              "id",
+                                              "sourceRange"
+                                            ],
+                                            "properties": {
+                                              "id": {
+                                                "description": "The id of the geometry.",
+                                                "type": "string",
+                                                "format": "uuid"
+                                              },
+                                              "sourceRange": {
+                                                "description": "The source range.",
+                                                "type": "array",
+                                                "items": {
+                                                  "type": "integer",
+                                                  "format": "uint",
+                                                  "minimum": 0.0
+                                                },
+                                                "maxItems": 2,
+                                                "minItems": 2
+                                              }
+                                            }
+                                          },
+                                          "ccw": {
+                                            "description": "arc's direction",
+                                            "type": "boolean"
+                                          },
+                                          "center": {
+                                            "description": "the arc's center",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "from": {
+                                            "description": "The from point.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "radius": {
+                                            "description": "the arc's radius",
+                                            "type": "number",
+                                            "format": "double"
+                                          },
+                                          "tag": {
+                                            "description": "The tag of the path.",
+                                            "type": "object",
+                                            "required": [
+                                              "end",
+                                              "start",
+                                              "value"
+                                            ],
+                                            "properties": {
+                                              "digest": {
+                                                "type": "array",
+                                                "items": {
+                                                  "type": "integer",
+                                                  "format": "uint8",
+                                                  "minimum": 0.0
+                                                },
+                                                "maxItems": 32,
+                                                "minItems": 32,
+                                                "nullable": true
+                                              },
+                                              "end": {
+                                                "type": "integer",
+                                                "format": "uint",
+                                                "minimum": 0.0
+                                              },
+                                              "start": {
+                                                "type": "integer",
+                                                "format": "uint",
+                                                "minimum": 0.0
+                                              },
+                                              "value": {
+                                                "type": "string"
+                                              }
+                                            },
+                                            "nullable": true
+                                          },
+                                          "to": {
+                                            "description": "The to point.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "number",
+                                              "format": "double"
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          },
+                                          "type": {
+                                            "type": "string",
+                                            "enum": [
+                                              "Circle"
+                                            ]
+                                          }
+                                        }
+                                      },
                                       {
                                         "description": "A path that is horizontal.",
                                         "type": "object",
@@ -172227,6 +183214,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -174291,6 +185400,128 @@
                             }
                           }
                         },
+                        {
+                          "description": "a complete arc",
+                          "type": "object",
+                          "required": [
+                            "__geoMeta",
+                            "ccw",
+                            "center",
+                            "from",
+                            "radius",
+                            "to",
+                            "type"
+                          ],
+                          "properties": {
+                            "__geoMeta": {
+                              "description": "Metadata.",
+                              "type": "object",
+                              "required": [
+                                "id",
+                                "sourceRange"
+                              ],
+                              "properties": {
+                                "id": {
+                                  "description": "The id of the geometry.",
+                                  "type": "string",
+                                  "format": "uuid"
+                                },
+                                "sourceRange": {
+                                  "description": "The source range.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                }
+                              }
+                            },
+                            "ccw": {
+                              "description": "arc's direction",
+                              "type": "boolean"
+                            },
+                            "center": {
+                              "description": "the arc's center",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "from": {
+                              "description": "The from point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "radius": {
+                              "description": "the arc's radius",
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "tag": {
+                              "description": "The tag of the path.",
+                              "type": "object",
+                              "required": [
+                                "end",
+                                "start",
+                                "value"
+                              ],
+                              "properties": {
+                                "digest": {
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint8",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 32,
+                                  "minItems": 32,
+                                  "nullable": true
+                                },
+                                "end": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "start": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "value": {
+                                  "type": "string"
+                                }
+                              },
+                              "nullable": true
+                            },
+                            "to": {
+                              "description": "The to point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "type": {
+                              "type": "string",
+                              "enum": [
+                                "Circle"
+                              ]
+                            }
+                          }
+                        },
                         {
                           "description": "A path that is horizontal.",
                           "type": "object",
@@ -176372,6 +187603,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -176701,7 +188054,7 @@
     "unpublished": false,
     "deprecated": false,
     "examples": [
-      "const exampleSketch = startSketchOn('XZ')\n  |> circle([0, 0], 1, %)\n  |> patternLinear2d({\n       axis: [1, 0],\n       repetitions: 6,\n       distance: 4\n     }, %)\n\nconst example = extrude(1, exampleSketch)"
+      "const exampleSketch = startSketchOn('XZ')\n  |> circle({ center: [0, 0], radius: 1 }, %)\n  |> patternLinear2d({\n       axis: [1, 0],\n       repetitions: 6,\n       distance: 4\n     }, %)\n\nconst example = extrude(1, exampleSketch)"
     ]
   },
   {
@@ -178684,6 +190037,128 @@
                               }
                             }
                           },
+                          {
+                            "description": "a complete arc",
+                            "type": "object",
+                            "required": [
+                              "__geoMeta",
+                              "ccw",
+                              "center",
+                              "from",
+                              "radius",
+                              "to",
+                              "type"
+                            ],
+                            "properties": {
+                              "__geoMeta": {
+                                "description": "Metadata.",
+                                "type": "object",
+                                "required": [
+                                  "id",
+                                  "sourceRange"
+                                ],
+                                "properties": {
+                                  "id": {
+                                    "description": "The id of the geometry.",
+                                    "type": "string",
+                                    "format": "uuid"
+                                  },
+                                  "sourceRange": {
+                                    "description": "The source range.",
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 2,
+                                    "minItems": 2
+                                  }
+                                }
+                              },
+                              "ccw": {
+                                "description": "arc's direction",
+                                "type": "boolean"
+                              },
+                              "center": {
+                                "description": "the arc's center",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "from": {
+                                "description": "The from point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "radius": {
+                                "description": "the arc's radius",
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "tag": {
+                                "description": "The tag of the path.",
+                                "type": "object",
+                                "required": [
+                                  "end",
+                                  "start",
+                                  "value"
+                                ],
+                                "properties": {
+                                  "digest": {
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint8",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 32,
+                                    "minItems": 32,
+                                    "nullable": true
+                                  },
+                                  "end": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "start": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "value": {
+                                    "type": "string"
+                                  }
+                                },
+                                "nullable": true
+                              },
+                              "to": {
+                                "description": "The to point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "type": {
+                                "type": "string",
+                                "enum": [
+                                  "Circle"
+                                ]
+                              }
+                            }
+                          },
                           {
                             "description": "A path that is horizontal.",
                             "type": "object",
@@ -180754,6 +192229,128 @@
                                 }
                               }
                             },
+                            {
+                              "description": "a complete arc",
+                              "type": "object",
+                              "required": [
+                                "__geoMeta",
+                                "ccw",
+                                "center",
+                                "from",
+                                "radius",
+                                "to",
+                                "type"
+                              ],
+                              "properties": {
+                                "__geoMeta": {
+                                  "description": "Metadata.",
+                                  "type": "object",
+                                  "required": [
+                                    "id",
+                                    "sourceRange"
+                                  ],
+                                  "properties": {
+                                    "id": {
+                                      "description": "The id of the geometry.",
+                                      "type": "string",
+                                      "format": "uuid"
+                                    },
+                                    "sourceRange": {
+                                      "description": "The source range.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "integer",
+                                        "format": "uint",
+                                        "minimum": 0.0
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    }
+                                  }
+                                },
+                                "ccw": {
+                                  "description": "arc's direction",
+                                  "type": "boolean"
+                                },
+                                "center": {
+                                  "description": "the arc's center",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "from": {
+                                  "description": "The from point.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "radius": {
+                                  "description": "the arc's radius",
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "tag": {
+                                  "description": "The tag of the path.",
+                                  "type": "object",
+                                  "required": [
+                                    "end",
+                                    "start",
+                                    "value"
+                                  ],
+                                  "properties": {
+                                    "digest": {
+                                      "type": "array",
+                                      "items": {
+                                        "type": "integer",
+                                        "format": "uint8",
+                                        "minimum": 0.0
+                                      },
+                                      "maxItems": 32,
+                                      "minItems": 32,
+                                      "nullable": true
+                                    },
+                                    "end": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "start": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "value": {
+                                      "type": "string"
+                                    }
+                                  },
+                                  "nullable": true
+                                },
+                                "to": {
+                                  "description": "The to point.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "type": {
+                                  "type": "string",
+                                  "enum": [
+                                    "Circle"
+                                  ]
+                                }
+                              }
+                            },
                             {
                               "description": "A path that is horizontal.",
                               "type": "object",
@@ -182835,6 +194432,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -185445,6 +197164,128 @@
                               }
                             }
                           },
+                          {
+                            "description": "a complete arc",
+                            "type": "object",
+                            "required": [
+                              "__geoMeta",
+                              "ccw",
+                              "center",
+                              "from",
+                              "radius",
+                              "to",
+                              "type"
+                            ],
+                            "properties": {
+                              "__geoMeta": {
+                                "description": "Metadata.",
+                                "type": "object",
+                                "required": [
+                                  "id",
+                                  "sourceRange"
+                                ],
+                                "properties": {
+                                  "id": {
+                                    "description": "The id of the geometry.",
+                                    "type": "string",
+                                    "format": "uuid"
+                                  },
+                                  "sourceRange": {
+                                    "description": "The source range.",
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 2,
+                                    "minItems": 2
+                                  }
+                                }
+                              },
+                              "ccw": {
+                                "description": "arc's direction",
+                                "type": "boolean"
+                              },
+                              "center": {
+                                "description": "the arc's center",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "from": {
+                                "description": "The from point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "radius": {
+                                "description": "the arc's radius",
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "tag": {
+                                "description": "The tag of the path.",
+                                "type": "object",
+                                "required": [
+                                  "end",
+                                  "start",
+                                  "value"
+                                ],
+                                "properties": {
+                                  "digest": {
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint8",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 32,
+                                    "minItems": 32,
+                                    "nullable": true
+                                  },
+                                  "end": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "start": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "value": {
+                                    "type": "string"
+                                  }
+                                },
+                                "nullable": true
+                              },
+                              "to": {
+                                "description": "The to point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "type": {
+                                "type": "string",
+                                "enum": [
+                                  "Circle"
+                                ]
+                              }
+                            }
+                          },
                           {
                             "description": "A path that is horizontal.",
                             "type": "object",
@@ -187515,6 +199356,128 @@
                                 }
                               }
                             },
+                            {
+                              "description": "a complete arc",
+                              "type": "object",
+                              "required": [
+                                "__geoMeta",
+                                "ccw",
+                                "center",
+                                "from",
+                                "radius",
+                                "to",
+                                "type"
+                              ],
+                              "properties": {
+                                "__geoMeta": {
+                                  "description": "Metadata.",
+                                  "type": "object",
+                                  "required": [
+                                    "id",
+                                    "sourceRange"
+                                  ],
+                                  "properties": {
+                                    "id": {
+                                      "description": "The id of the geometry.",
+                                      "type": "string",
+                                      "format": "uuid"
+                                    },
+                                    "sourceRange": {
+                                      "description": "The source range.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "integer",
+                                        "format": "uint",
+                                        "minimum": 0.0
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    }
+                                  }
+                                },
+                                "ccw": {
+                                  "description": "arc's direction",
+                                  "type": "boolean"
+                                },
+                                "center": {
+                                  "description": "the arc's center",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "from": {
+                                  "description": "The from point.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "radius": {
+                                  "description": "the arc's radius",
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "tag": {
+                                  "description": "The tag of the path.",
+                                  "type": "object",
+                                  "required": [
+                                    "end",
+                                    "start",
+                                    "value"
+                                  ],
+                                  "properties": {
+                                    "digest": {
+                                      "type": "array",
+                                      "items": {
+                                        "type": "integer",
+                                        "format": "uint8",
+                                        "minimum": 0.0
+                                      },
+                                      "maxItems": 32,
+                                      "minItems": 32,
+                                      "nullable": true
+                                    },
+                                    "end": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "start": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "value": {
+                                      "type": "string"
+                                    }
+                                  },
+                                  "nullable": true
+                                },
+                                "to": {
+                                  "description": "The to point.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "type": {
+                                  "type": "string",
+                                  "enum": [
+                                    "Circle"
+                                  ]
+                                }
+                              }
+                            },
                             {
                               "description": "A path that is horizontal.",
                               "type": "object",
@@ -189596,6 +201559,128 @@
                           }
                         }
                       },
+                      {
+                        "description": "a complete arc",
+                        "type": "object",
+                        "required": [
+                          "__geoMeta",
+                          "ccw",
+                          "center",
+                          "from",
+                          "radius",
+                          "to",
+                          "type"
+                        ],
+                        "properties": {
+                          "__geoMeta": {
+                            "description": "Metadata.",
+                            "type": "object",
+                            "required": [
+                              "id",
+                              "sourceRange"
+                            ],
+                            "properties": {
+                              "id": {
+                                "description": "The id of the geometry.",
+                                "type": "string",
+                                "format": "uuid"
+                              },
+                              "sourceRange": {
+                                "description": "The source range.",
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              }
+                            }
+                          },
+                          "ccw": {
+                            "description": "arc's direction",
+                            "type": "boolean"
+                          },
+                          "center": {
+                            "description": "the arc's center",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "from": {
+                            "description": "The from point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "radius": {
+                            "description": "the arc's radius",
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "tag": {
+                            "description": "The tag of the path.",
+                            "type": "object",
+                            "required": [
+                              "end",
+                              "start",
+                              "value"
+                            ],
+                            "properties": {
+                              "digest": {
+                                "type": "array",
+                                "items": {
+                                  "type": "integer",
+                                  "format": "uint8",
+                                  "minimum": 0.0
+                                },
+                                "maxItems": 32,
+                                "minItems": 32,
+                                "nullable": true
+                              },
+                              "end": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "start": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "value": {
+                                "type": "string"
+                              }
+                            },
+                            "nullable": true
+                          },
+                          "to": {
+                            "description": "The to point.",
+                            "type": "array",
+                            "items": {
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          },
+                          "type": {
+                            "type": "string",
+                            "enum": [
+                              "Circle"
+                            ]
+                          }
+                        }
+                      },
                       {
                         "description": "A path that is horizontal.",
                         "type": "object",
@@ -190242,7 +202327,7 @@
     "unpublished": false,
     "deprecated": false,
     "examples": [
-      "// Parameters\nconst r = 50 // base radius\nconst h = 10 // layer height\nconst t = 0.005 // taper factor [0-1)\n// Defines how to modify each layer of the vase.\n// Each replica is shifted up the Z axis, and has a smoothly-varying radius\nfn transform = (replicaId) => {\n  let scale = r * abs(1 - (t * replicaId)) * (5 + cos(replicaId / 8))\n  return {\n  translate: [0, 0, replicaId * 10],\n  scale: [scale, scale, 0]\n}\n}\n// Each layer is just a pretty thin cylinder.\nfn layer = () => {\n  return startSketchOn(\"XY\")\n  // or some other plane idk\n  |> circle([0, 0], 1, %, $tag1)\n  |> extrude(h, %)\n}\n// The vase is 100 layers tall.\n// The 100 layers are replica of each other, with a slight transformation applied to each.\nlet vase = layer()\n  |> patternTransform(100, transform, %)"
+      "// Parameters\nconst r = 50 // base radius\nconst h = 10 // layer height\nconst t = 0.005 // taper factor [0-1)\n// Defines how to modify each layer of the vase.\n// Each replica is shifted up the Z axis, and has a smoothly-varying radius\nfn transform = (replicaId) => {\n  let scale = r * abs(1 - (t * replicaId)) * (5 + cos(replicaId / 8))\n  return {\n  translate: [0, 0, replicaId * 10],\n  scale: [scale, scale, 0]\n}\n}\n// Each layer is just a pretty thin cylinder.\nfn layer = () => {\n  return startSketchOn(\"XY\")\n  // or some other plane idk\n  |> circle({ center: [0, 0], radius: 1 }, %, $tag1)\n  |> extrude(h, %)\n}\n// The vase is 100 layers tall.\n// The 100 layers are replica of each other, with a slight transformation applied to each.\nlet vase = layer()\n  |> patternTransform(100, transform, %)"
     ]
   },
   {
@@ -190265,7 +202350,7 @@
     "unpublished": false,
     "deprecated": false,
     "examples": [
-      "const circumference = 70\n\nconst exampleSketch = startSketchOn(\"XZ\")\n  |> circle([0, 0], circumference / (2 * pi()), %)\n\nconst example = extrude(5, exampleSketch)"
+      "const circumference = 70\n\nconst exampleSketch = startSketchOn(\"XZ\")\n  |> circle({\n       center: [0, 0],\n       radius: circumference / (2 * pi())\n     }, %)\n\nconst example = extrude(5, exampleSketch)"
     ]
   },
   {
@@ -191742,6 +203827,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -193361,6 +205568,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -195087,6 +207416,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -196706,6 +209157,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -198427,6 +211000,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -200046,6 +212741,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -202352,6 +215169,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -203971,6 +216910,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -206230,6 +219291,128 @@
                         }
                       }
                     },
+                    {
+                      "description": "a complete arc",
+                      "type": "object",
+                      "required": [
+                        "__geoMeta",
+                        "ccw",
+                        "center",
+                        "from",
+                        "radius",
+                        "to",
+                        "type"
+                      ],
+                      "properties": {
+                        "__geoMeta": {
+                          "description": "Metadata.",
+                          "type": "object",
+                          "required": [
+                            "id",
+                            "sourceRange"
+                          ],
+                          "properties": {
+                            "id": {
+                              "description": "The id of the geometry.",
+                              "type": "string",
+                              "format": "uuid"
+                            },
+                            "sourceRange": {
+                              "description": "The source range.",
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            }
+                          }
+                        },
+                        "ccw": {
+                          "description": "arc's direction",
+                          "type": "boolean"
+                        },
+                        "center": {
+                          "description": "the arc's center",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "from": {
+                          "description": "The from point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "radius": {
+                          "description": "the arc's radius",
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "tag": {
+                          "description": "The tag of the path.",
+                          "type": "object",
+                          "required": [
+                            "end",
+                            "start",
+                            "value"
+                          ],
+                          "properties": {
+                            "digest": {
+                              "type": "array",
+                              "items": {
+                                "type": "integer",
+                                "format": "uint8",
+                                "minimum": 0.0
+                              },
+                              "maxItems": 32,
+                              "minItems": 32,
+                              "nullable": true
+                            },
+                            "end": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "start": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "value": {
+                              "type": "string"
+                            }
+                          },
+                          "nullable": true
+                        },
+                        "to": {
+                          "description": "The to point.",
+                          "type": "array",
+                          "items": {
+                            "type": "number",
+                            "format": "double"
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        },
+                        "type": {
+                          "type": "string",
+                          "enum": [
+                            "Circle"
+                          ]
+                        }
+                      }
+                    },
                     {
                       "description": "A path that is horizontal.",
                       "type": "object",
@@ -206876,12 +220059,12 @@
     "deprecated": false,
     "examples": [
       "const part001 = startSketchOn('XY')\n  |> startProfileAt([4, 12], %)\n  |> line([2, 0], %)\n  |> line([0, -6], %)\n  |> line([4, -6], %)\n  |> line([0, -6], %)\n  |> line([-3.75, -4.5], %)\n  |> line([0, -5.5], %)\n  |> line([-2, 0], %)\n  |> close(%)\n  |> revolve({ axis: 'y' }, %) // default angle is 360",
-      "// A donut shape.\nconst sketch001 = startSketchOn('XY')\n  |> circle([15, 0], 5, %)\n  |> revolve({ angle: 360, axis: 'y' }, %)",
+      "// A donut shape.\nconst sketch001 = startSketchOn('XY')\n  |> circle({ center: [15, 0], radius: 5 }, %)\n  |> revolve({ angle: 360, axis: 'y' }, %)",
       "const part001 = startSketchOn('XY')\n  |> startProfileAt([4, 12], %)\n  |> line([2, 0], %)\n  |> line([0, -6], %)\n  |> line([4, -6], %)\n  |> line([0, -6], %)\n  |> line([-3.75, -4.5], %)\n  |> line([0, -5.5], %)\n  |> line([-2, 0], %)\n  |> close(%)\n  |> revolve({ axis: 'y', angle: 180 }, %)",
       "const part001 = startSketchOn('XY')\n  |> startProfileAt([4, 12], %)\n  |> line([2, 0], %)\n  |> line([0, -6], %)\n  |> line([4, -6], %)\n  |> line([0, -6], %)\n  |> line([-3.75, -4.5], %)\n  |> line([0, -5.5], %)\n  |> line([-2, 0], %)\n  |> close(%)\n  |> revolve({ axis: 'y', angle: 180 }, %)\nconst part002 = startSketchOn(part001, 'end')\n  |> startProfileAt([4.5, -5], %)\n  |> line([0, 5], %)\n  |> line([5, 0], %)\n  |> line([0, -5], %)\n  |> close(%)\n  |> extrude(5, %)",
-      "const box = startSketchOn('XY')\n  |> startProfileAt([0, 0], %)\n  |> line([0, 20], %)\n  |> line([20, 0], %)\n  |> line([0, -20], %)\n  |> close(%)\n  |> extrude(20, %)\n\nconst sketch001 = startSketchOn(box, \"END\")\n  |> circle([10, 10], 4, %)\n  |> revolve({ angle: -90, axis: 'y' }, %)",
-      "const box = startSketchOn('XY')\n  |> startProfileAt([0, 0], %)\n  |> line([0, 20], %)\n  |> line([20, 0], %)\n  |> line([0, -20], %, $revolveAxis)\n  |> close(%)\n  |> extrude(20, %)\n\nconst sketch001 = startSketchOn(box, \"END\")\n  |> circle([10, 10], 4, %)\n  |> revolve({\n       angle: 90,\n       axis: getOppositeEdge(revolveAxis)\n     }, %)",
-      "const box = startSketchOn('XY')\n  |> startProfileAt([0, 0], %)\n  |> line([0, 20], %)\n  |> line([20, 0], %)\n  |> line([0, -20], %, $revolveAxis)\n  |> close(%)\n  |> extrude(20, %)\n\nconst sketch001 = startSketchOn(box, \"END\")\n  |> circle([10, 10], 4, %)\n  |> revolve({\n       angle: 90,\n       axis: getOppositeEdge(revolveAxis),\n       tolerance: 0.0001\n     }, %)",
+      "const box = startSketchOn('XY')\n  |> startProfileAt([0, 0], %)\n  |> line([0, 20], %)\n  |> line([20, 0], %)\n  |> line([0, -20], %)\n  |> close(%)\n  |> extrude(20, %)\n\nconst sketch001 = startSketchOn(box, \"END\")\n  |> circle({ center: [10, 10], radius: 4 }, %)\n  |> revolve({ angle: -90, axis: 'y' }, %)",
+      "const box = startSketchOn('XY')\n  |> startProfileAt([0, 0], %)\n  |> line([0, 20], %)\n  |> line([20, 0], %)\n  |> line([0, -20], %, $revolveAxis)\n  |> close(%)\n  |> extrude(20, %)\n\nconst sketch001 = startSketchOn(box, \"END\")\n  |> circle({ center: [10, 10], radius: 4 }, %)\n  |> revolve({\n       angle: 90,\n       axis: getOppositeEdge(revolveAxis)\n     }, %)",
+      "const box = startSketchOn('XY')\n  |> startProfileAt([0, 0], %)\n  |> line([0, 20], %)\n  |> line([20, 0], %)\n  |> line([0, -20], %, $revolveAxis)\n  |> close(%)\n  |> extrude(20, %)\n\nconst sketch001 = startSketchOn(box, \"END\")\n  |> circle({ center: [10, 10], radius: 4 }, %)\n  |> revolve({\n       angle: 90,\n       axis: getOppositeEdge(revolveAxis),\n       tolerance: 0.0001\n     }, %)",
       "const sketch001 = startSketchOn('XY')\n  |> startProfileAt([10, 0], %)\n  |> line([5, -5], %)\n  |> line([5, 5], %)\n  |> lineTo([profileStartX(%), profileStartY(%)], %)\n  |> close(%)\n\nconst part001 = revolve({\n  axis: {\n    custom: {\n      axis: [0.0, 1.0, 0.0],\n      origin: [0.0, 0.0, 0.0]\n    }\n  }\n}, sketch001)"
     ]
   },
@@ -211264,6 +224447,128 @@
                               }
                             }
                           },
+                          {
+                            "description": "a complete arc",
+                            "type": "object",
+                            "required": [
+                              "__geoMeta",
+                              "ccw",
+                              "center",
+                              "from",
+                              "radius",
+                              "to",
+                              "type"
+                            ],
+                            "properties": {
+                              "__geoMeta": {
+                                "description": "Metadata.",
+                                "type": "object",
+                                "required": [
+                                  "id",
+                                  "sourceRange"
+                                ],
+                                "properties": {
+                                  "id": {
+                                    "description": "The id of the geometry.",
+                                    "type": "string",
+                                    "format": "uuid"
+                                  },
+                                  "sourceRange": {
+                                    "description": "The source range.",
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 2,
+                                    "minItems": 2
+                                  }
+                                }
+                              },
+                              "ccw": {
+                                "description": "arc's direction",
+                                "type": "boolean"
+                              },
+                              "center": {
+                                "description": "the arc's center",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "from": {
+                                "description": "The from point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "radius": {
+                                "description": "the arc's radius",
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "tag": {
+                                "description": "The tag of the path.",
+                                "type": "object",
+                                "required": [
+                                  "end",
+                                  "start",
+                                  "value"
+                                ],
+                                "properties": {
+                                  "digest": {
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint8",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 32,
+                                    "minItems": 32,
+                                    "nullable": true
+                                  },
+                                  "end": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "start": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "value": {
+                                    "type": "string"
+                                  }
+                                },
+                                "nullable": true
+                              },
+                              "to": {
+                                "description": "The to point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "type": {
+                                "type": "string",
+                                "enum": [
+                                  "Circle"
+                                ]
+                              }
+                            }
+                          },
                           {
                             "description": "A path that is horizontal.",
                             "type": "object",
@@ -213334,6 +226639,128 @@
                                 }
                               }
                             },
+                            {
+                              "description": "a complete arc",
+                              "type": "object",
+                              "required": [
+                                "__geoMeta",
+                                "ccw",
+                                "center",
+                                "from",
+                                "radius",
+                                "to",
+                                "type"
+                              ],
+                              "properties": {
+                                "__geoMeta": {
+                                  "description": "Metadata.",
+                                  "type": "object",
+                                  "required": [
+                                    "id",
+                                    "sourceRange"
+                                  ],
+                                  "properties": {
+                                    "id": {
+                                      "description": "The id of the geometry.",
+                                      "type": "string",
+                                      "format": "uuid"
+                                    },
+                                    "sourceRange": {
+                                      "description": "The source range.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "integer",
+                                        "format": "uint",
+                                        "minimum": 0.0
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    }
+                                  }
+                                },
+                                "ccw": {
+                                  "description": "arc's direction",
+                                  "type": "boolean"
+                                },
+                                "center": {
+                                  "description": "the arc's center",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "from": {
+                                  "description": "The from point.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "radius": {
+                                  "description": "the arc's radius",
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "tag": {
+                                  "description": "The tag of the path.",
+                                  "type": "object",
+                                  "required": [
+                                    "end",
+                                    "start",
+                                    "value"
+                                  ],
+                                  "properties": {
+                                    "digest": {
+                                      "type": "array",
+                                      "items": {
+                                        "type": "integer",
+                                        "format": "uint8",
+                                        "minimum": 0.0
+                                      },
+                                      "maxItems": 32,
+                                      "minItems": 32,
+                                      "nullable": true
+                                    },
+                                    "end": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "start": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "value": {
+                                      "type": "string"
+                                    }
+                                  },
+                                  "nullable": true
+                                },
+                                "to": {
+                                  "description": "The to point.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "type": {
+                                  "type": "string",
+                                  "enum": [
+                                    "Circle"
+                                  ]
+                                }
+                              }
+                            },
                             {
                               "description": "A path that is horizontal.",
                               "type": "object",
@@ -215928,6 +229355,128 @@
                             }
                           }
                         },
+                        {
+                          "description": "a complete arc",
+                          "type": "object",
+                          "required": [
+                            "__geoMeta",
+                            "ccw",
+                            "center",
+                            "from",
+                            "radius",
+                            "to",
+                            "type"
+                          ],
+                          "properties": {
+                            "__geoMeta": {
+                              "description": "Metadata.",
+                              "type": "object",
+                              "required": [
+                                "id",
+                                "sourceRange"
+                              ],
+                              "properties": {
+                                "id": {
+                                  "description": "The id of the geometry.",
+                                  "type": "string",
+                                  "format": "uuid"
+                                },
+                                "sourceRange": {
+                                  "description": "The source range.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                }
+                              }
+                            },
+                            "ccw": {
+                              "description": "arc's direction",
+                              "type": "boolean"
+                            },
+                            "center": {
+                              "description": "the arc's center",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "from": {
+                              "description": "The from point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "radius": {
+                              "description": "the arc's radius",
+                              "type": "number",
+                              "format": "double"
+                            },
+                            "tag": {
+                              "description": "The tag of the path.",
+                              "type": "object",
+                              "required": [
+                                "end",
+                                "start",
+                                "value"
+                              ],
+                              "properties": {
+                                "digest": {
+                                  "type": "array",
+                                  "items": {
+                                    "type": "integer",
+                                    "format": "uint8",
+                                    "minimum": 0.0
+                                  },
+                                  "maxItems": 32,
+                                  "minItems": 32,
+                                  "nullable": true
+                                },
+                                "end": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "start": {
+                                  "type": "integer",
+                                  "format": "uint",
+                                  "minimum": 0.0
+                                },
+                                "value": {
+                                  "type": "string"
+                                }
+                              },
+                              "nullable": true
+                            },
+                            "to": {
+                              "description": "The to point.",
+                              "type": "array",
+                              "items": {
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "maxItems": 2,
+                              "minItems": 2
+                            },
+                            "type": {
+                              "type": "string",
+                              "enum": [
+                                "Circle"
+                              ]
+                            }
+                          }
+                        },
                         {
                           "description": "A path that is horizontal.",
                           "type": "object",
@@ -217998,6 +231547,128 @@
                               }
                             }
                           },
+                          {
+                            "description": "a complete arc",
+                            "type": "object",
+                            "required": [
+                              "__geoMeta",
+                              "ccw",
+                              "center",
+                              "from",
+                              "radius",
+                              "to",
+                              "type"
+                            ],
+                            "properties": {
+                              "__geoMeta": {
+                                "description": "Metadata.",
+                                "type": "object",
+                                "required": [
+                                  "id",
+                                  "sourceRange"
+                                ],
+                                "properties": {
+                                  "id": {
+                                    "description": "The id of the geometry.",
+                                    "type": "string",
+                                    "format": "uuid"
+                                  },
+                                  "sourceRange": {
+                                    "description": "The source range.",
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 2,
+                                    "minItems": 2
+                                  }
+                                }
+                              },
+                              "ccw": {
+                                "description": "arc's direction",
+                                "type": "boolean"
+                              },
+                              "center": {
+                                "description": "the arc's center",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "from": {
+                                "description": "The from point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "radius": {
+                                "description": "the arc's radius",
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "tag": {
+                                "description": "The tag of the path.",
+                                "type": "object",
+                                "required": [
+                                  "end",
+                                  "start",
+                                  "value"
+                                ],
+                                "properties": {
+                                  "digest": {
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint8",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 32,
+                                    "minItems": 32,
+                                    "nullable": true
+                                  },
+                                  "end": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "start": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "value": {
+                                    "type": "string"
+                                  }
+                                },
+                                "nullable": true
+                              },
+                              "to": {
+                                "description": "The to point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "type": {
+                                "type": "string",
+                                "enum": [
+                                  "Circle"
+                                ]
+                              }
+                            }
+                          },
                           {
                             "description": "A path that is horizontal.",
                             "type": "object",
@@ -218661,9 +232332,9 @@
       "// Remove the start face for the extrusion.\nconst firstSketch = startSketchOn('-XZ')\n  |> startProfileAt([-12, 12], %)\n  |> line([24, 0], %)\n  |> line([0, -24], %)\n  |> line([-24, 0], %)\n  |> close(%)\n  |> extrude(6, %)\n\n// Remove the start face for the extrusion.\nshell({ faces: ['start'], thickness: 0.25 }, firstSketch)",
       "// Remove a tagged face and the end face for the extrusion.\nconst firstSketch = startSketchOn('XY')\n  |> startProfileAt([-12, 12], %)\n  |> line([24, 0], %)\n  |> line([0, -24], %)\n  |> line([-24, 0], %, $myTag)\n  |> close(%)\n  |> extrude(6, %)\n\n// Remove a tagged face for the extrusion.\nshell({ faces: [myTag], thickness: 0.25 }, firstSketch)",
       "// Remove multiple faces at once.\nconst firstSketch = startSketchOn('XY')\n  |> startProfileAt([-12, 12], %)\n  |> line([24, 0], %)\n  |> line([0, -24], %)\n  |> line([-24, 0], %, $myTag)\n  |> close(%)\n  |> extrude(6, %)\n\n// Remove a tagged face and the end face for the extrusion.\nshell({\n  faces: [myTag, 'end'],\n  thickness: 0.25\n}, firstSketch)",
-      "// Shell a sketch on face.\nlet size = 100\nconst case = startSketchOn('-XZ')\n  |> startProfileAt([-size, -size], %)\n  |> line([2 * size, 0], %)\n  |> line([0, 2 * size], %)\n  |> tangentialArcTo([-size, size], %)\n  |> close(%)\n  |> extrude(65, %)\n\nconst thing1 = startSketchOn(case, 'end')\n  |> circle([-size / 2, -size / 2], 25, %)\n  |> extrude(50, %)\n\nconst thing2 = startSketchOn(case, 'end')\n  |> circle([size / 2, -size / 2], 25, %)\n  |> extrude(50, %)\n\n// We put \"case\" in the shell function to shell the entire object.\nshell({ faces: ['start'], thickness: 5 }, case)",
-      "// Shell a sketch on face object on the end face.\nlet size = 100\nconst case = startSketchOn('XY')\n  |> startProfileAt([-size, -size], %)\n  |> line([2 * size, 0], %)\n  |> line([0, 2 * size], %)\n  |> tangentialArcTo([-size, size], %)\n  |> close(%)\n  |> extrude(65, %)\n\nconst thing1 = startSketchOn(case, 'end')\n  |> circle([-size / 2, -size / 2], 25, %)\n  |> extrude(50, %)\n\nconst thing2 = startSketchOn(case, 'end')\n  |> circle([size / 2, -size / 2], 25, %)\n  |> extrude(50, %)\n\n// We put \"thing1\" in the shell function to shell the end face of the object.\nshell({ faces: ['end'], thickness: 5 }, thing1)",
-      "// Shell sketched on face objects on the end face, include all sketches to shell\n// the entire object.\n\n\nlet size = 100\nconst case = startSketchOn('XY')\n  |> startProfileAt([-size, -size], %)\n  |> line([2 * size, 0], %)\n  |> line([0, 2 * size], %)\n  |> tangentialArcTo([-size, size], %)\n  |> close(%)\n  |> extrude(65, %)\n\nconst thing1 = startSketchOn(case, 'end')\n  |> circle([-size / 2, -size / 2], 25, %)\n  |> extrude(50, %)\n\nconst thing2 = startSketchOn(case, 'end')\n  |> circle([size / 2, -size / 2], 25, %)\n  |> extrude(50, %)\n\n// We put \"thing1\" and \"thing2\" in the shell function to shell the end face of the object.\nshell({ faces: ['end'], thickness: 5 }, [thing1, thing2])"
+      "// Shell a sketch on face.\nlet size = 100\nconst case = startSketchOn('-XZ')\n  |> startProfileAt([-size, -size], %)\n  |> line([2 * size, 0], %)\n  |> line([0, 2 * size], %)\n  |> tangentialArcTo([-size, size], %)\n  |> close(%)\n  |> extrude(65, %)\n\nconst thing1 = startSketchOn(case, 'end')\n  |> circle({\n       center: [-size / 2, -size / 2],\n       radius: 25\n     }, %)\n  |> extrude(50, %)\n\nconst thing2 = startSketchOn(case, 'end')\n  |> circle({\n       center: [size / 2, -size / 2],\n       radius: 25\n     }, %)\n  |> extrude(50, %)\n\n// We put \"case\" in the shell function to shell the entire object.\nshell({ faces: ['start'], thickness: 5 }, case)",
+      "// Shell a sketch on face object on the end face.\nlet size = 100\nconst case = startSketchOn('XY')\n  |> startProfileAt([-size, -size], %)\n  |> line([2 * size, 0], %)\n  |> line([0, 2 * size], %)\n  |> tangentialArcTo([-size, size], %)\n  |> close(%)\n  |> extrude(65, %)\n\nconst thing1 = startSketchOn(case, 'end')\n  |> circle({\n       center: [-size / 2, -size / 2],\n       radius: 25\n     }, %)\n  |> extrude(50, %)\n\nconst thing2 = startSketchOn(case, 'end')\n  |> circle({\n       center: [size / 2, -size / 2],\n       radius: 25\n     }, %)\n  |> extrude(50, %)\n\n// We put \"thing1\" in the shell function to shell the end face of the object.\nshell({ faces: ['end'], thickness: 5 }, thing1)",
+      "// Shell sketched on face objects on the end face, include all sketches to shell\n// the entire object.\n\n\nlet size = 100\nconst case = startSketchOn('XY')\n  |> startProfileAt([-size, -size], %)\n  |> line([2 * size, 0], %)\n  |> line([0, 2 * size], %)\n  |> tangentialArcTo([-size, size], %)\n  |> close(%)\n  |> extrude(65, %)\n\nconst thing1 = startSketchOn(case, 'end')\n  |> circle({\n       center: [-size / 2, -size / 2],\n       radius: 25\n     }, %)\n  |> extrude(50, %)\n\nconst thing2 = startSketchOn(case, 'end')\n  |> circle({\n       center: [size / 2, -size / 2],\n       radius: 25\n     }, %)\n  |> extrude(50, %)\n\n// We put \"thing1\" and \"thing2\" in the shell function to shell the end face of the object.\nshell({ faces: ['end'], thickness: 5 }, [thing1, thing2])"
     ]
   },
   {
@@ -220376,6 +234047,128 @@
                                   }
                                 }
                               },
+                              {
+                                "description": "a complete arc",
+                                "type": "object",
+                                "required": [
+                                  "__geoMeta",
+                                  "ccw",
+                                  "center",
+                                  "from",
+                                  "radius",
+                                  "to",
+                                  "type"
+                                ],
+                                "properties": {
+                                  "__geoMeta": {
+                                    "description": "Metadata.",
+                                    "type": "object",
+                                    "required": [
+                                      "id",
+                                      "sourceRange"
+                                    ],
+                                    "properties": {
+                                      "id": {
+                                        "description": "The id of the geometry.",
+                                        "type": "string",
+                                        "format": "uuid"
+                                      },
+                                      "sourceRange": {
+                                        "description": "The source range.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      }
+                                    }
+                                  },
+                                  "ccw": {
+                                    "description": "arc's direction",
+                                    "type": "boolean"
+                                  },
+                                  "center": {
+                                    "description": "the arc's center",
+                                    "type": "array",
+                                    "items": {
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "maxItems": 2,
+                                    "minItems": 2
+                                  },
+                                  "from": {
+                                    "description": "The from point.",
+                                    "type": "array",
+                                    "items": {
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "maxItems": 2,
+                                    "minItems": 2
+                                  },
+                                  "radius": {
+                                    "description": "the arc's radius",
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "tag": {
+                                    "description": "The tag of the path.",
+                                    "type": "object",
+                                    "required": [
+                                      "end",
+                                      "start",
+                                      "value"
+                                    ],
+                                    "properties": {
+                                      "digest": {
+                                        "type": "array",
+                                        "items": {
+                                          "type": "integer",
+                                          "format": "uint8",
+                                          "minimum": 0.0
+                                        },
+                                        "maxItems": 32,
+                                        "minItems": 32,
+                                        "nullable": true
+                                      },
+                                      "end": {
+                                        "type": "integer",
+                                        "format": "uint",
+                                        "minimum": 0.0
+                                      },
+                                      "start": {
+                                        "type": "integer",
+                                        "format": "uint",
+                                        "minimum": 0.0
+                                      },
+                                      "value": {
+                                        "type": "string"
+                                      }
+                                    },
+                                    "nullable": true
+                                  },
+                                  "to": {
+                                    "description": "The to point.",
+                                    "type": "array",
+                                    "items": {
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "maxItems": 2,
+                                    "minItems": 2
+                                  },
+                                  "type": {
+                                    "type": "string",
+                                    "enum": [
+                                      "Circle"
+                                    ]
+                                  }
+                                }
+                              },
                               {
                                 "description": "A path that is horizontal.",
                                 "type": "object",
@@ -222521,6 +236314,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -224140,6 +238055,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -225868,6 +239905,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -227487,6 +241646,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -229411,6 +243692,128 @@
                               }
                             }
                           },
+                          {
+                            "description": "a complete arc",
+                            "type": "object",
+                            "required": [
+                              "__geoMeta",
+                              "ccw",
+                              "center",
+                              "from",
+                              "radius",
+                              "to",
+                              "type"
+                            ],
+                            "properties": {
+                              "__geoMeta": {
+                                "description": "Metadata.",
+                                "type": "object",
+                                "required": [
+                                  "id",
+                                  "sourceRange"
+                                ],
+                                "properties": {
+                                  "id": {
+                                    "description": "The id of the geometry.",
+                                    "type": "string",
+                                    "format": "uuid"
+                                  },
+                                  "sourceRange": {
+                                    "description": "The source range.",
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 2,
+                                    "minItems": 2
+                                  }
+                                }
+                              },
+                              "ccw": {
+                                "description": "arc's direction",
+                                "type": "boolean"
+                              },
+                              "center": {
+                                "description": "the arc's center",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "from": {
+                                "description": "The from point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "radius": {
+                                "description": "the arc's radius",
+                                "type": "number",
+                                "format": "double"
+                              },
+                              "tag": {
+                                "description": "The tag of the path.",
+                                "type": "object",
+                                "required": [
+                                  "end",
+                                  "start",
+                                  "value"
+                                ],
+                                "properties": {
+                                  "digest": {
+                                    "type": "array",
+                                    "items": {
+                                      "type": "integer",
+                                      "format": "uint8",
+                                      "minimum": 0.0
+                                    },
+                                    "maxItems": 32,
+                                    "minItems": 32,
+                                    "nullable": true
+                                  },
+                                  "end": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "start": {
+                                    "type": "integer",
+                                    "format": "uint",
+                                    "minimum": 0.0
+                                  },
+                                  "value": {
+                                    "type": "string"
+                                  }
+                                },
+                                "nullable": true
+                              },
+                              "to": {
+                                "description": "The to point.",
+                                "type": "array",
+                                "items": {
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "maxItems": 2,
+                                "minItems": 2
+                              },
+                              "type": {
+                                "type": "string",
+                                "enum": [
+                                  "Circle"
+                                ]
+                              }
+                            }
+                          },
                           {
                             "description": "A path that is horizontal.",
                             "type": "object",
@@ -232166,6 +246569,128 @@
                                 }
                               }
                             },
+                            {
+                              "description": "a complete arc",
+                              "type": "object",
+                              "required": [
+                                "__geoMeta",
+                                "ccw",
+                                "center",
+                                "from",
+                                "radius",
+                                "to",
+                                "type"
+                              ],
+                              "properties": {
+                                "__geoMeta": {
+                                  "description": "Metadata.",
+                                  "type": "object",
+                                  "required": [
+                                    "id",
+                                    "sourceRange"
+                                  ],
+                                  "properties": {
+                                    "id": {
+                                      "description": "The id of the geometry.",
+                                      "type": "string",
+                                      "format": "uuid"
+                                    },
+                                    "sourceRange": {
+                                      "description": "The source range.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "integer",
+                                        "format": "uint",
+                                        "minimum": 0.0
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    }
+                                  }
+                                },
+                                "ccw": {
+                                  "description": "arc's direction",
+                                  "type": "boolean"
+                                },
+                                "center": {
+                                  "description": "the arc's center",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "from": {
+                                  "description": "The from point.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "radius": {
+                                  "description": "the arc's radius",
+                                  "type": "number",
+                                  "format": "double"
+                                },
+                                "tag": {
+                                  "description": "The tag of the path.",
+                                  "type": "object",
+                                  "required": [
+                                    "end",
+                                    "start",
+                                    "value"
+                                  ],
+                                  "properties": {
+                                    "digest": {
+                                      "type": "array",
+                                      "items": {
+                                        "type": "integer",
+                                        "format": "uint8",
+                                        "minimum": 0.0
+                                      },
+                                      "maxItems": 32,
+                                      "minItems": 32,
+                                      "nullable": true
+                                    },
+                                    "end": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "start": {
+                                      "type": "integer",
+                                      "format": "uint",
+                                      "minimum": 0.0
+                                    },
+                                    "value": {
+                                      "type": "string"
+                                    }
+                                  },
+                                  "nullable": true
+                                },
+                                "to": {
+                                  "description": "The to point.",
+                                  "type": "array",
+                                  "items": {
+                                    "type": "number",
+                                    "format": "double"
+                                  },
+                                  "maxItems": 2,
+                                  "minItems": 2
+                                },
+                                "type": {
+                                  "type": "string",
+                                  "enum": [
+                                    "Circle"
+                                  ]
+                                }
+                              }
+                            },
                             {
                               "description": "A path that is horizontal.",
                               "type": "object",
@@ -234347,6 +248872,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -235966,6 +250613,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -237706,6 +252475,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -239325,6 +254216,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -241050,6 +256063,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -242669,6 +257804,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -244409,6 +259666,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -246028,6 +261407,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -247753,6 +263254,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -249372,6 +264995,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -251112,6 +266857,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -252731,6 +268598,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -254540,6 +270529,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -256159,6 +272270,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -257899,6 +274132,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -259518,6 +275873,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -261238,6 +277715,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -262857,6 +279456,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -264597,6 +281318,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -266216,6 +283059,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -267936,6 +284901,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -269555,6 +286642,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -271295,6 +288504,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -272914,6 +290245,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
@@ -274634,6 +292087,128 @@
                                       }
                                     }
                                   },
+                                  {
+                                    "description": "a complete arc",
+                                    "type": "object",
+                                    "required": [
+                                      "__geoMeta",
+                                      "ccw",
+                                      "center",
+                                      "from",
+                                      "radius",
+                                      "to",
+                                      "type"
+                                    ],
+                                    "properties": {
+                                      "__geoMeta": {
+                                        "description": "Metadata.",
+                                        "type": "object",
+                                        "required": [
+                                          "id",
+                                          "sourceRange"
+                                        ],
+                                        "properties": {
+                                          "id": {
+                                            "description": "The id of the geometry.",
+                                            "type": "string",
+                                            "format": "uuid"
+                                          },
+                                          "sourceRange": {
+                                            "description": "The source range.",
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 2,
+                                            "minItems": 2
+                                          }
+                                        }
+                                      },
+                                      "ccw": {
+                                        "description": "arc's direction",
+                                        "type": "boolean"
+                                      },
+                                      "center": {
+                                        "description": "the arc's center",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "from": {
+                                        "description": "The from point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "radius": {
+                                        "description": "the arc's radius",
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "tag": {
+                                        "description": "The tag of the path.",
+                                        "type": "object",
+                                        "required": [
+                                          "end",
+                                          "start",
+                                          "value"
+                                        ],
+                                        "properties": {
+                                          "digest": {
+                                            "type": "array",
+                                            "items": {
+                                              "type": "integer",
+                                              "format": "uint8",
+                                              "minimum": 0.0
+                                            },
+                                            "maxItems": 32,
+                                            "minItems": 32,
+                                            "nullable": true
+                                          },
+                                          "end": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "start": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "value": {
+                                            "type": "string"
+                                          }
+                                        },
+                                        "nullable": true
+                                      },
+                                      "to": {
+                                        "description": "The to point.",
+                                        "type": "array",
+                                        "items": {
+                                          "type": "number",
+                                          "format": "double"
+                                        },
+                                        "maxItems": 2,
+                                        "minItems": 2
+                                      },
+                                      "type": {
+                                        "type": "string",
+                                        "enum": [
+                                          "Circle"
+                                        ]
+                                      }
+                                    }
+                                  },
                                   {
                                     "description": "A path that is horizontal.",
                                     "type": "object",
@@ -276253,6 +293828,128 @@
                       }
                     }
                   },
+                  {
+                    "description": "a complete arc",
+                    "type": "object",
+                    "required": [
+                      "__geoMeta",
+                      "ccw",
+                      "center",
+                      "from",
+                      "radius",
+                      "to",
+                      "type"
+                    ],
+                    "properties": {
+                      "__geoMeta": {
+                        "description": "Metadata.",
+                        "type": "object",
+                        "required": [
+                          "id",
+                          "sourceRange"
+                        ],
+                        "properties": {
+                          "id": {
+                            "description": "The id of the geometry.",
+                            "type": "string",
+                            "format": "uuid"
+                          },
+                          "sourceRange": {
+                            "description": "The source range.",
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 2,
+                            "minItems": 2
+                          }
+                        }
+                      },
+                      "ccw": {
+                        "description": "arc's direction",
+                        "type": "boolean"
+                      },
+                      "center": {
+                        "description": "the arc's center",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "from": {
+                        "description": "The from point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "radius": {
+                        "description": "the arc's radius",
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "tag": {
+                        "description": "The tag of the path.",
+                        "type": "object",
+                        "required": [
+                          "end",
+                          "start",
+                          "value"
+                        ],
+                        "properties": {
+                          "digest": {
+                            "type": "array",
+                            "items": {
+                              "type": "integer",
+                              "format": "uint8",
+                              "minimum": 0.0
+                            },
+                            "maxItems": 32,
+                            "minItems": 32,
+                            "nullable": true
+                          },
+                          "end": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "start": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "value": {
+                            "type": "string"
+                          }
+                        },
+                        "nullable": true
+                      },
+                      "to": {
+                        "description": "The to point.",
+                        "type": "array",
+                        "items": {
+                          "type": "number",
+                          "format": "double"
+                        },
+                        "maxItems": 2,
+                        "minItems": 2
+                      },
+                      "type": {
+                        "type": "string",
+                        "enum": [
+                          "Circle"
+                        ]
+                      }
+                    }
+                  },
                   {
                     "description": "A path that is horizontal.",
                     "type": "object",
@@ -277993,6 +295690,128 @@
                                     }
                                   }
                                 },
+                                {
+                                  "description": "a complete arc",
+                                  "type": "object",
+                                  "required": [
+                                    "__geoMeta",
+                                    "ccw",
+                                    "center",
+                                    "from",
+                                    "radius",
+                                    "to",
+                                    "type"
+                                  ],
+                                  "properties": {
+                                    "__geoMeta": {
+                                      "description": "Metadata.",
+                                      "type": "object",
+                                      "required": [
+                                        "id",
+                                        "sourceRange"
+                                      ],
+                                      "properties": {
+                                        "id": {
+                                          "description": "The id of the geometry.",
+                                          "type": "string",
+                                          "format": "uuid"
+                                        },
+                                        "sourceRange": {
+                                          "description": "The source range.",
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 2,
+                                          "minItems": 2
+                                        }
+                                      }
+                                    },
+                                    "ccw": {
+                                      "description": "arc's direction",
+                                      "type": "boolean"
+                                    },
+                                    "center": {
+                                      "description": "the arc's center",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "from": {
+                                      "description": "The from point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "radius": {
+                                      "description": "the arc's radius",
+                                      "type": "number",
+                                      "format": "double"
+                                    },
+                                    "tag": {
+                                      "description": "The tag of the path.",
+                                      "type": "object",
+                                      "required": [
+                                        "end",
+                                        "start",
+                                        "value"
+                                      ],
+                                      "properties": {
+                                        "digest": {
+                                          "type": "array",
+                                          "items": {
+                                            "type": "integer",
+                                            "format": "uint8",
+                                            "minimum": 0.0
+                                          },
+                                          "maxItems": 32,
+                                          "minItems": 32,
+                                          "nullable": true
+                                        },
+                                        "end": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "start": {
+                                          "type": "integer",
+                                          "format": "uint",
+                                          "minimum": 0.0
+                                        },
+                                        "value": {
+                                          "type": "string"
+                                        }
+                                      },
+                                      "nullable": true
+                                    },
+                                    "to": {
+                                      "description": "The to point.",
+                                      "type": "array",
+                                      "items": {
+                                        "type": "number",
+                                        "format": "double"
+                                      },
+                                      "maxItems": 2,
+                                      "minItems": 2
+                                    },
+                                    "type": {
+                                      "type": "string",
+                                      "enum": [
+                                        "Circle"
+                                      ]
+                                    }
+                                  }
+                                },
                                 {
                                   "description": "A path that is horizontal.",
                                   "type": "object",
@@ -279612,6 +297431,128 @@
                     }
                   }
                 },
+                {
+                  "description": "a complete arc",
+                  "type": "object",
+                  "required": [
+                    "__geoMeta",
+                    "ccw",
+                    "center",
+                    "from",
+                    "radius",
+                    "to",
+                    "type"
+                  ],
+                  "properties": {
+                    "__geoMeta": {
+                      "description": "Metadata.",
+                      "type": "object",
+                      "required": [
+                        "id",
+                        "sourceRange"
+                      ],
+                      "properties": {
+                        "id": {
+                          "description": "The id of the geometry.",
+                          "type": "string",
+                          "format": "uuid"
+                        },
+                        "sourceRange": {
+                          "description": "The source range.",
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 2,
+                          "minItems": 2
+                        }
+                      }
+                    },
+                    "ccw": {
+                      "description": "arc's direction",
+                      "type": "boolean"
+                    },
+                    "center": {
+                      "description": "the arc's center",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "from": {
+                      "description": "The from point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "radius": {
+                      "description": "the arc's radius",
+                      "type": "number",
+                      "format": "double"
+                    },
+                    "tag": {
+                      "description": "The tag of the path.",
+                      "type": "object",
+                      "required": [
+                        "end",
+                        "start",
+                        "value"
+                      ],
+                      "properties": {
+                        "digest": {
+                          "type": "array",
+                          "items": {
+                            "type": "integer",
+                            "format": "uint8",
+                            "minimum": 0.0
+                          },
+                          "maxItems": 32,
+                          "minItems": 32,
+                          "nullable": true
+                        },
+                        "end": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "start": {
+                          "type": "integer",
+                          "format": "uint",
+                          "minimum": 0.0
+                        },
+                        "value": {
+                          "type": "string"
+                        }
+                      },
+                      "nullable": true
+                    },
+                    "to": {
+                      "description": "The to point.",
+                      "type": "array",
+                      "items": {
+                        "type": "number",
+                        "format": "double"
+                      },
+                      "maxItems": 2,
+                      "minItems": 2
+                    },
+                    "type": {
+                      "type": "string",
+                      "enum": [
+                        "Circle"
+                      ]
+                    }
+                  }
+                },
                 {
                   "description": "A path that is horizontal.",
                   "type": "object",
diff --git a/docs/kcl/tangentialArc.md b/docs/kcl/tangentialArc.md
index 4cfa30c49..9fc4c54ac 100644
--- a/docs/kcl/tangentialArc.md
+++ b/docs/kcl/tangentialArc.md
@@ -188,6 +188,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -397,6 +417,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -608,6 +648,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -817,6 +877,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/tangentialArcTo.md b/docs/kcl/tangentialArcTo.md
index 85bb6f500..652606ad1 100644
--- a/docs/kcl/tangentialArcTo.md
+++ b/docs/kcl/tangentialArcTo.md
@@ -179,6 +179,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -388,6 +408,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -599,6 +639,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -808,6 +868,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/tangentialArcToRelative.md b/docs/kcl/tangentialArcToRelative.md
index e5669c0eb..892341a0b 100644
--- a/docs/kcl/tangentialArcToRelative.md
+++ b/docs/kcl/tangentialArcToRelative.md
@@ -179,6 +179,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -388,6 +408,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -599,6 +639,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -808,6 +868,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/xLine.md b/docs/kcl/xLine.md
index ef42d32b9..83ed5cda6 100644
--- a/docs/kcl/xLine.md
+++ b/docs/kcl/xLine.md
@@ -182,6 +182,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -391,6 +411,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -602,6 +642,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -811,6 +871,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/xLineTo.md b/docs/kcl/xLineTo.md
index 9d3eb31a4..4f612d4c5 100644
--- a/docs/kcl/xLineTo.md
+++ b/docs/kcl/xLineTo.md
@@ -182,6 +182,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -391,6 +411,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -602,6 +642,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -811,6 +871,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/yLine.md b/docs/kcl/yLine.md
index dc90b095e..14e63e477 100644
--- a/docs/kcl/yLine.md
+++ b/docs/kcl/yLine.md
@@ -180,6 +180,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -389,6 +409,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -600,6 +640,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -809,6 +869,26 @@ const example = extrude(10, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/docs/kcl/yLineTo.md b/docs/kcl/yLineTo.md
index 4a9fd3b3a..2a3d0e379 100644
--- a/docs/kcl/yLineTo.md
+++ b/docs/kcl/yLineTo.md
@@ -178,6 +178,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -387,6 +407,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -598,6 +638,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
@@ -807,6 +867,26 @@ const example = extrude(5, exampleSketch)
 	to: [number, number],
 	type: "TangentialArc",
 } |
+{
+	// arc's direction
+	ccw: bool,
+	// the arc's center
+	center: [number, number],
+	// The from point.
+	from: [number, number],
+	// the arc's radius
+	radius: number,
+	// The tag of the path.
+	tag: {
+	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
+	end: number,
+	start: number,
+	value: string,
+},
+	// The to point.
+	to: [number, number],
+	type: "Circle",
+} |
 {
 	// The from point.
 	from: [number, number],
diff --git a/e2e/playwright/authenticatedAppFixture.ts b/e2e/playwright/authenticatedAppFixture.ts
new file mode 100644
index 000000000..7e7523d54
--- /dev/null
+++ b/e2e/playwright/authenticatedAppFixture.ts
@@ -0,0 +1,216 @@
+import type { Page, Locator } from '@playwright/test'
+import { expect, test as base } from '@playwright/test'
+import { getUtils, setup, tearDown } from './test-utils'
+import fsp from 'fs/promises'
+import { join } from 'path'
+
+type CmdBarSerilised =
+  | {
+      stage: 'commandBarClosed'
+      // TODO no more properties needed but needs to be implemented in _serialiseCmdBar
+    }
+  | {
+      stage: 'pickCommand'
+      // TODO this will need more properties when implemented in _serialiseCmdBar
+    }
+  | {
+      stage: 'arguments'
+      currentArgKey: string
+      currentArgValue: string
+      headerArguments: Record