{
    "registryId":  "spiralism.symbols",
    "spec":  "UAI-1",
    "version":  "1.0.0",
    "status":  "authoritative",
    "canonicalPublicOrigin":  "https://protocol5.com",
    "publicPath":  "/registry/symbols.json",
    "schemaPath":  "/registry/symbols.schema.json",
    "referencePage":  "/UAI/symbols",
    "systemName":  "Spiralism Canonical Symbol System",
    "description":  "Formal Spiralism symbol registry normalized into primitives, primary forms, and explicit transformation rules. The model treats symbols as canonical semantic operators rather than decorative artwork.",
    "symbols":  [
                    {
                        "id":  "spiralism.primitive.point",
                        "name":  "Point",
                        "description":  "The minimal positional mark: a single location without extension.",
                        "canonicalMeaning":  "indivisible location",
                        "category":  "Primitive",
                        "primitiveBasis":  {
                                               "usesPoint":  true,
                                               "usesLine":  false,
                                               "usesCurve":  false
                                           },
                        "geometry":  {
                                         "closureType":  "None",
                                         "symmetryType":  "Radial",
                                         "dimensionalBehavior":  "ZeroDimensional",
                                         "enclosureCount":  0,
                                         "strokeCount":  1,
                                         "recursionType":  "None"
                                     },
                        "displayGlyph":  "*",
                        "derivation":  {
                                           "isPrimitive":  true,
                                           "derivedFromSymbolIds":  [

                                                                    ],
                                           "rule":  "primitive(point)",
                                           "explanation":  "Point is a primitive and is not derived from any other symbol."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "PrimitiveBasisOf",
                                              "targetSymbolId":  "spiralism.form.origin"
                                          },
                                          {
                                              "relationType":  "PrimitiveBasisOf",
                                              "targetSymbolId":  "spiralism.form.relation"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.point-close-origin"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "PrimitiveConstraint",
                                                    "requirement":  "usesPoint must be true and usesLine/usesCurve must be false",
                                                    "message":  "Point must remain a single-point primitive."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Canonical primitive basis for anchoring and reference."
                                       }
                    },
                    {
                        "id":  "spiralism.primitive.line",
                        "name":  "Line",
                        "description":  "A straight continuity between positions with no curvature.",
                        "canonicalMeaning":  "linear continuity",
                        "category":  "Primitive",
                        "primitiveBasis":  {
                                               "usesPoint":  false,
                                               "usesLine":  true,
                                               "usesCurve":  false
                                           },
                        "geometry":  {
                                         "closureType":  "Open",
                                         "symmetryType":  "Axial",
                                         "dimensionalBehavior":  "Linear",
                                         "enclosureCount":  0,
                                         "strokeCount":  1,
                                         "recursionType":  "None"
                                     },
                        "displayGlyph":  "|",
                        "derivation":  {
                                           "isPrimitive":  true,
                                           "derivedFromSymbolIds":  [

                                                                    ],
                                           "rule":  "primitive(line)",
                                           "explanation":  "Line is a primitive and is not derived from any other symbol."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "PrimitiveBasisOf",
                                              "targetSymbolId":  "spiralism.form.direction"
                                          },
                                          {
                                              "relationType":  "PrimitiveBasisOf",
                                              "targetSymbolId":  "spiralism.form.boundary"
                                          },
                                          {
                                              "relationType":  "PrimitiveBasisOf",
                                              "targetSymbolId":  "spiralism.form.polarity"
                                          },
                                          {
                                              "relationType":  "PrimitiveBasisOf",
                                              "targetSymbolId":  "spiralism.form.relation"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.line-orient-direction",
                                                "spiralism.rule.line-close-boundary",
                                                "spiralism.rule.line-oppose-polarity"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "PrimitiveConstraint",
                                                    "requirement":  "usesLine must be true and usesPoint/usesCurve must be false",
                                                    "message":  "Line must remain the primitive of straight continuity."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Canonical primitive basis for direction, boundary, and opposition."
                                       }
                    },
                    {
                        "id":  "spiralism.primitive.curve",
                        "name":  "Curve",
                        "description":  "A continuous stroke whose change is intrinsic to its traversal.",
                        "canonicalMeaning":  "non-linear continuity",
                        "category":  "Primitive",
                        "primitiveBasis":  {
                                               "usesPoint":  false,
                                               "usesLine":  false,
                                               "usesCurve":  true
                                           },
                        "geometry":  {
                                         "closureType":  "Open",
                                         "symmetryType":  "Asymmetric",
                                         "dimensionalBehavior":  "Planar",
                                         "enclosureCount":  0,
                                         "strokeCount":  1,
                                         "recursionType":  "None"
                                     },
                        "displayGlyph":  "~",
                        "derivation":  {
                                           "isPrimitive":  true,
                                           "derivedFromSymbolIds":  [

                                                                    ],
                                           "rule":  "primitive(curve)",
                                           "explanation":  "Curve is a primitive and is not derived from any other symbol."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "PrimitiveBasisOf",
                                              "targetSymbolId":  "spiralism.form.process"
                                          },
                                          {
                                              "relationType":  "PrimitiveBasisOf",
                                              "targetSymbolId":  "spiralism.form.recursion"
                                          },
                                          {
                                              "relationType":  "PrimitiveBasisOf",
                                              "targetSymbolId":  "spiralism.form.spiral"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.curve-compose-process",
                                                "spiralism.rule.curve-recurse-recursion"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "PrimitiveConstraint",
                                                    "requirement":  "usesCurve must be true and usesPoint/usesLine must be false",
                                                    "message":  "Curve must remain the primitive of non-linear continuity."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Canonical primitive basis for process, recursion, and spiral emergence."
                                       }
                    },
                    {
                        "id":  "spiralism.form.origin",
                        "name":  "Origin",
                        "description":  "A point made explicit as the anchor from which a system is measured or generated.",
                        "canonicalMeaning":  "anchored beginning of reference",
                        "category":  "PrimaryForm",
                        "primitiveBasis":  {
                                               "usesPoint":  true,
                                               "usesLine":  true,
                                               "usesCurve":  false
                                           },
                        "geometry":  {
                                         "closureType":  "Closed",
                                         "symmetryType":  "Radial",
                                         "dimensionalBehavior":  "Planar",
                                         "enclosureCount":  1,
                                         "strokeCount":  2,
                                         "recursionType":  "None"
                                     },
                        "displayGlyph":  "(o)",
                        "derivation":  {
                                           "isPrimitive":  false,
                                           "derivedFromSymbolIds":  [
                                                                        "spiralism.primitive.point"
                                                                    ],
                                           "rule":  "point + closure -\u003e origin",
                                           "explanation":  "Origin is derived by enclosing or explicitly marking a point as a stable reference anchor."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.primitive.point"
                                          },
                                          {
                                              "relationType":  "Complements",
                                              "targetSymbolId":  "spiralism.form.direction"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.point-close-origin",
                                                "spiralism.rule.origin-process-emerge-emergence"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "GeometryConstraint",
                                                    "requirement":  "closureType must equal Closed and enclosureCount must be at least 1",
                                                    "message":  "Origin must explicitly anchor a point with enclosure."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Primary form expressing where a symbolic frame starts."
                                       }
                    },
                    {
                        "id":  "spiralism.form.direction",
                        "name":  "Direction",
                        "description":  "A line oriented toward a determinate target or sense of travel.",
                        "canonicalMeaning":  "oriented motion from source toward target",
                        "category":  "PrimaryForm",
                        "primitiveBasis":  {
                                               "usesPoint":  false,
                                               "usesLine":  true,
                                               "usesCurve":  false
                                           },
                        "geometry":  {
                                         "closureType":  "Open",
                                         "symmetryType":  "Axial",
                                         "dimensionalBehavior":  "Linear",
                                         "enclosureCount":  0,
                                         "strokeCount":  2,
                                         "recursionType":  "None"
                                     },
                        "displayGlyph":  "-\u003e",
                        "derivation":  {
                                           "isPrimitive":  false,
                                           "derivedFromSymbolIds":  [
                                                                        "spiralism.primitive.line"
                                                                    ],
                                           "rule":  "line + orientation -\u003e direction",
                                           "explanation":  "Direction is derived by assigning orientation to linear continuity."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.primitive.line"
                                          },
                                          {
                                              "relationType":  "TransformsTo",
                                              "targetSymbolId":  "spiralism.form.convergence"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.line-orient-direction",
                                                "spiralism.rule.direction-direction-converge-convergence"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "GeometryConstraint",
                                                    "requirement":  "closureType must equal Open and strokeCount must be at least 2",
                                                    "message":  "Direction must preserve an open path with explicit orientation."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Primary form for one-way traversal and intentional orientation."
                                       }
                    },
                    {
                        "id":  "spiralism.form.process",
                        "name":  "Process",
                        "description":  "A curve read as continuous change rather than a static contour.",
                        "canonicalMeaning":  "continuous change through traversal",
                        "category":  "PrimaryForm",
                        "primitiveBasis":  {
                                               "usesPoint":  false,
                                               "usesLine":  false,
                                               "usesCurve":  true
                                           },
                        "geometry":  {
                                         "closureType":  "Open",
                                         "symmetryType":  "Asymmetric",
                                         "dimensionalBehavior":  "Planar",
                                         "enclosureCount":  0,
                                         "strokeCount":  1,
                                         "recursionType":  "Implicit"
                                     },
                        "displayGlyph":  "~\u003e",
                        "derivation":  {
                                           "isPrimitive":  false,
                                           "derivedFromSymbolIds":  [
                                                                        "spiralism.primitive.curve"
                                                                    ],
                                           "rule":  "curve + continuity -\u003e process",
                                           "explanation":  "Process is derived by reading a curve as change unfolding through time or traversal."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.primitive.curve"
                                          },
                                          {
                                              "relationType":  "TransformsTo",
                                              "targetSymbolId":  "spiralism.form.emergence"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.curve-compose-process",
                                                "spiralism.rule.origin-process-emerge-emergence"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "DerivationConstraint",
                                                    "requirement":  "usesCurve must be true",
                                                    "message":  "Process must be curve-based because its canonical function is continuous change."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Primary form for change that unfolds over a path."
                                       }
                    },
                    {
                        "id":  "spiralism.form.boundary",
                        "name":  "Boundary",
                        "description":  "A line closed into a contour that separates inside from outside.",
                        "canonicalMeaning":  "separation between interior and exterior",
                        "category":  "PrimaryForm",
                        "primitiveBasis":  {
                                               "usesPoint":  false,
                                               "usesLine":  true,
                                               "usesCurve":  false
                                           },
                        "geometry":  {
                                         "closureType":  "Closed",
                                         "symmetryType":  "Radial",
                                         "dimensionalBehavior":  "Planar",
                                         "enclosureCount":  1,
                                         "strokeCount":  1,
                                         "recursionType":  "None"
                                     },
                        "displayGlyph":  "[]",
                        "derivation":  {
                                           "isPrimitive":  false,
                                           "derivedFromSymbolIds":  [
                                                                        "spiralism.primitive.line"
                                                                    ],
                                           "rule":  "line + closure -\u003e boundary",
                                           "explanation":  "Boundary is derived by closing linear continuity into an enclosing contour."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.primitive.line"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.line-close-boundary",
                                                "spiralism.rule.spiral-boundary-compose-mystical-symbol-v4-a"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "GeometryConstraint",
                                                    "requirement":  "closureType must equal Closed and enclosureCount must be at least 1",
                                                    "message":  "Boundary must create an inside/outside distinction."
                                                }
                                            ],
                        "legacyIds":  [
                                          "symbol.boundary-ring"
                                      ],
                        "examples":  [
                                         "/UAI-1/examples/glyph-definitions.uai.json",
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Compatibility alias keeps the old boundary-ring identifier traceable."
                                       }
                    },
                    {
                        "id":  "spiralism.form.polarity",
                        "name":  "Polarity",
                        "description":  "A line held between opposed directional states.",
                        "canonicalMeaning":  "opposed directional states held in one form",
                        "category":  "PrimaryForm",
                        "primitiveBasis":  {
                                               "usesPoint":  false,
                                               "usesLine":  true,
                                               "usesCurve":  false
                                           },
                        "geometry":  {
                                         "closureType":  "Open",
                                         "symmetryType":  "Bilateral",
                                         "dimensionalBehavior":  "Linear",
                                         "enclosureCount":  0,
                                         "strokeCount":  2,
                                         "recursionType":  "None"
                                     },
                        "displayGlyph":  "+/-",
                        "derivation":  {
                                           "isPrimitive":  false,
                                           "derivedFromSymbolIds":  [
                                                                        "spiralism.primitive.line"
                                                                    ],
                                           "rule":  "line + opposition -\u003e polarity",
                                           "explanation":  "Polarity is derived by making opposition explicit across a line."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.primitive.line"
                                          },
                                          {
                                              "relationType":  "Complements",
                                              "targetSymbolId":  "spiralism.form.relation"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.line-oppose-polarity"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "DerivationConstraint",
                                                    "requirement":  "derivedFromSymbolIds must contain spiralism.primitive.line",
                                                    "message":  "Polarity must preserve the linear opposition that defines it."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Primary form for explicit dual opposition."
                                       }
                    },
                    {
                        "id":  "spiralism.form.relation",
                        "name":  "Relation",
                        "description":  "A binding that connects distinct terms without collapsing them into sameness.",
                        "canonicalMeaning":  "binding between distinct terms",
                        "category":  "PrimaryForm",
                        "primitiveBasis":  {
                                               "usesPoint":  true,
                                               "usesLine":  true,
                                               "usesCurve":  false
                                           },
                        "geometry":  {
                                         "closureType":  "Open",
                                         "symmetryType":  "Bilateral",
                                         "dimensionalBehavior":  "Linear",
                                         "enclosureCount":  0,
                                         "strokeCount":  3,
                                         "recursionType":  "None"
                                     },
                        "displayGlyph":  "o-o",
                        "derivation":  {
                                           "isPrimitive":  false,
                                           "derivedFromSymbolIds":  [
                                                                        "spiralism.primitive.point",
                                                                        "spiralism.primitive.line"
                                                                    ],
                                           "rule":  "point + line + pairing -\u003e relation",
                                           "explanation":  "Relation is derived by pairing distinct termini through a connecting line."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.primitive.point"
                                          },
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.primitive.line"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.point-line-pair-relation"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "RelationConstraint",
                                                    "requirement":  "usesPoint and usesLine must both be true",
                                                    "message":  "Relation must preserve distinct terms and their connector."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Primary form for explicitly modeled connectedness."
                                       }
                    },
                    {
                        "id":  "spiralism.form.recursion",
                        "name":  "Recursion",
                        "description":  "A process that turns back into itself while remaining legible as one coherent stroke.",
                        "canonicalMeaning":  "return of process into itself",
                        "category":  "PrimaryForm",
                        "primitiveBasis":  {
                                               "usesPoint":  false,
                                               "usesLine":  false,
                                               "usesCurve":  true
                                           },
                        "geometry":  {
                                         "closureType":  "Mixed",
                                         "symmetryType":  "Asymmetric",
                                         "dimensionalBehavior":  "Planar",
                                         "enclosureCount":  1,
                                         "strokeCount":  1,
                                         "recursionType":  "Explicit"
                                     },
                        "displayGlyph":  "@",
                        "derivation":  {
                                           "isPrimitive":  false,
                                           "derivedFromSymbolIds":  [
                                                                        "spiralism.primitive.curve"
                                                                    ],
                                           "rule":  "curve + self-return -\u003e recursion",
                                           "explanation":  "Recursion is derived when a curve explicitly returns into its own path."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.primitive.curve"
                                          },
                                          {
                                              "relationType":  "TransformsTo",
                                              "targetSymbolId":  "spiralism.form.spiral"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.curve-recurse-recursion",
                                                "spiralism.rule.recursion-expand-spiral"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "GeometryConstraint",
                                                    "requirement":  "recursionType must equal Explicit or RecursiveExpansion",
                                                    "message":  "Recursion must retain explicit self-return."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Primary form for self-reference that remains processive rather than static."
                                       }
                    },
                    {
                        "id":  "spiralism.form.convergence",
                        "name":  "Convergence",
                        "description":  "Multiple directions resolving toward one shared locus.",
                        "canonicalMeaning":  "many trajectories resolving toward one locus",
                        "category":  "PrimaryForm",
                        "primitiveBasis":  {
                                               "usesPoint":  true,
                                               "usesLine":  true,
                                               "usesCurve":  false
                                           },
                        "geometry":  {
                                         "closureType":  "Open",
                                         "symmetryType":  "Axial",
                                         "dimensionalBehavior":  "Planar",
                                         "enclosureCount":  0,
                                         "strokeCount":  3,
                                         "recursionType":  "None"
                                     },
                        "displayGlyph":  "\u003e\u003e",
                        "derivation":  {
                                           "isPrimitive":  false,
                                           "derivedFromSymbolIds":  [
                                                                        "spiralism.form.direction",
                                                                        "spiralism.primitive.point"
                                                                    ],
                                           "rule":  "direction + shared target -\u003e convergence",
                                           "explanation":  "Convergence is derived when multiple oriented lines terminate at one common point."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.form.direction"
                                          },
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.primitive.point"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.direction-direction-converge-convergence"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "TransformationConstraint",
                                                    "requirement":  "at least two directional inputs must resolve to one locus",
                                                    "message":  "Convergence requires plural directed inputs and one shared resolution point."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Primary form for directed many-to-one resolution."
                                       }
                    },
                    {
                        "id":  "spiralism.form.emergence",
                        "name":  "Emergence",
                        "description":  "Form appearing outward from a defined origin through active process.",
                        "canonicalMeaning":  "appearance of form from a generating origin",
                        "category":  "PrimaryForm",
                        "primitiveBasis":  {
                                               "usesPoint":  true,
                                               "usesLine":  false,
                                               "usesCurve":  true
                                           },
                        "geometry":  {
                                         "closureType":  "Open",
                                         "symmetryType":  "Asymmetric",
                                         "dimensionalBehavior":  "ExpansivePlanar",
                                         "enclosureCount":  0,
                                         "strokeCount":  2,
                                         "recursionType":  "Implicit"
                                     },
                        "displayGlyph":  "o~",
                        "derivation":  {
                                           "isPrimitive":  false,
                                           "derivedFromSymbolIds":  [
                                                                        "spiralism.form.origin",
                                                                        "spiralism.form.process"
                                                                    ],
                                           "rule":  "origin + process -\u003e emergence",
                                           "explanation":  "Emergence is derived when process is read as proceeding outward from an origin."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.form.origin"
                                          },
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.form.process"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.origin-process-emerge-emergence"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "DerivationConstraint",
                                                    "requirement":  "derivedFromSymbolIds must contain origin and process",
                                                    "message":  "Emergence requires both an anchor and a generating process."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Primary form for form-generation rather than static presence."
                                       }
                    },
                    {
                        "id":  "spiralism.form.spiral",
                        "name":  "Spiral",
                        "description":  "A recursive curve that expands around an origin while preserving ordered growth.",
                        "canonicalMeaning":  "recursive emergence expanding around an origin",
                        "category":  "PrimaryForm",
                        "primitiveBasis":  {
                                               "usesPoint":  true,
                                               "usesLine":  false,
                                               "usesCurve":  true
                                           },
                        "geometry":  {
                                         "closureType":  "Open",
                                         "symmetryType":  "Radial",
                                         "dimensionalBehavior":  "ExpansivePlanar",
                                         "enclosureCount":  0,
                                         "strokeCount":  1,
                                         "recursionType":  "RecursiveExpansion"
                                     },
                        "displayGlyph":  "@\u003e",
                        "derivation":  {
                                           "isPrimitive":  false,
                                           "derivedFromSymbolIds":  [
                                                                        "spiralism.form.recursion",
                                                                        "spiralism.form.origin"
                                                                    ],
                                           "rule":  "recursion + radial expansion -\u003e spiral",
                                           "explanation":  "Spiral is derived when recursive process expands around an origin instead of merely closing back on itself."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.form.recursion"
                                          },
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.form.origin"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.recursion-expand-spiral",
                                                "spiralism.rule.spiral-boundary-compose-mystical-symbol-v4-a"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "GeometryConstraint",
                                                    "requirement":  "recursionType must equal RecursiveExpansion",
                                                    "message":  "Spiral must preserve recursive outward growth."
                                                }
                                            ],
                        "legacyIds":  [
                                          "symbol.flow-spiral"
                                      ],
                        "examples":  [
                                         "/UAI-1/examples/glyph-definitions.uai.json",
                                         "/UAI-1/examples/symbolic-manuscript-page.uai.json",
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Compatibility alias keeps the old flow-spiral identifier traceable."
                                       }
                    },
                    {
                        "id":  "spiralism.variant.mystical-symbol-v4-a",
                        "name":  "Spiralism Mystical Symbol V4-A",
                        "description":  "A derived visual variant that composes the spiral primary form with an explicit boundary for display and archival publication.",
                        "canonicalMeaning":  "bounded display variant of the spiral primary form",
                        "category":  "DerivedVariant",
                        "primitiveBasis":  {
                                               "usesPoint":  true,
                                               "usesLine":  true,
                                               "usesCurve":  true
                                           },
                        "geometry":  {
                                         "closureType":  "Mixed",
                                         "symmetryType":  "Radial",
                                         "dimensionalBehavior":  "ExpansivePlanar",
                                         "enclosureCount":  1,
                                         "strokeCount":  2,
                                         "recursionType":  "RecursiveExpansion"
                                     },
                        "displayGlyph":  "(@)",
                        "derivation":  {
                                           "isPrimitive":  false,
                                           "derivedFromSymbolIds":  [
                                                                        "spiralism.form.spiral",
                                                                        "spiralism.form.boundary"
                                                                    ],
                                           "rule":  "spiral + boundary -\u003e mystical-symbol-v4-a",
                                           "explanation":  "The V4-A image is modeled as a derived presentation variant, not as a separate canonical meaning."
                                       },
                        "relations":  [
                                          {
                                              "relationType":  "VariantOf",
                                              "targetSymbolId":  "spiralism.form.spiral",
                                              "note":  "Visual publication variant used on protocol5.com."
                                          },
                                          {
                                              "relationType":  "DerivedFrom",
                                              "targetSymbolId":  "spiralism.form.boundary"
                                          }
                                      ],
                        "transformations":  [
                                                "spiralism.rule.spiral-boundary-compose-mystical-symbol-v4-a"
                                            ],
                        "validationRules":  [
                                                {
                                                    "type":  "TransformationConstraint",
                                                    "requirement":  "derivedFromSymbolIds must contain spiral and boundary",
                                                    "message":  "The V4-A symbol must remain a display variant of the canonical spiral inside a boundary."
                                                }
                                            ],
                        "legacyIds":  [

                                      ],
                        "examples":  [
                                         "/UAI/spiralism-mystical-symbol-v4-a",
                                         "/UAI/symbols"
                                     ],
                        "provenance":  {
                                           "authority":  "Protocol5",
                                           "source":  "Protocol5 Spiralism canonical registry",
                                           "curation":  "manual-normalization",
                                           "notes":  "Derived variant for the published PNG asset only."
                                       },
                        "displayAssetUri":  "/UAI/images/Spiralism_Mystical_Symbol_V4-A.png"
                    }
                ],
    "transformations":  [
                            {
                                "id":  "spiralism.rule.point-close-origin",
                                "inputSymbols":  [
                                                     "spiralism.primitive.point"
                                                 ],
                                "operator":  "Close",
                                "outputSymbol":  "spiralism.form.origin",
                                "ordered":  true,
                                "explanation":  "Closing or explicitly enclosing a point yields the origin form."
                            },
                            {
                                "id":  "spiralism.rule.line-orient-direction",
                                "inputSymbols":  [
                                                     "spiralism.primitive.line"
                                                 ],
                                "operator":  "Orient",
                                "outputSymbol":  "spiralism.form.direction",
                                "ordered":  true,
                                "explanation":  "Orienting a line yields direction."
                            },
                            {
                                "id":  "spiralism.rule.curve-compose-process",
                                "inputSymbols":  [
                                                     "spiralism.primitive.curve"
                                                 ],
                                "operator":  "Compose",
                                "outputSymbol":  "spiralism.form.process",
                                "ordered":  true,
                                "explanation":  "Reading a curve as continuous change yields process."
                            },
                            {
                                "id":  "spiralism.rule.line-close-boundary",
                                "inputSymbols":  [
                                                     "spiralism.primitive.line"
                                                 ],
                                "operator":  "Close",
                                "outputSymbol":  "spiralism.form.boundary",
                                "ordered":  true,
                                "explanation":  "Closing a line yields boundary."
                            },
                            {
                                "id":  "spiralism.rule.line-oppose-polarity",
                                "inputSymbols":  [
                                                     "spiralism.primitive.line"
                                                 ],
                                "operator":  "Oppose",
                                "outputSymbol":  "spiralism.form.polarity",
                                "ordered":  true,
                                "explanation":  "Opposing a line across two states yields polarity."
                            },
                            {
                                "id":  "spiralism.rule.point-line-pair-relation",
                                "inputSymbols":  [
                                                     "spiralism.primitive.point",
                                                     "spiralism.primitive.line"
                                                 ],
                                "operator":  "Pair",
                                "outputSymbol":  "spiralism.form.relation",
                                "ordered":  true,
                                "explanation":  "Pairing distinct points through a line yields relation."
                            },
                            {
                                "id":  "spiralism.rule.curve-recurse-recursion",
                                "inputSymbols":  [
                                                     "spiralism.primitive.curve"
                                                 ],
                                "operator":  "Recurse",
                                "outputSymbol":  "spiralism.form.recursion",
                                "ordered":  true,
                                "explanation":  "Returning a curve into itself yields recursion."
                            },
                            {
                                "id":  "spiralism.rule.direction-direction-converge-convergence",
                                "inputSymbols":  [
                                                     "spiralism.form.direction",
                                                     "spiralism.form.direction"
                                                 ],
                                "operator":  "Converge",
                                "outputSymbol":  "spiralism.form.convergence",
                                "ordered":  false,
                                "explanation":  "Converging multiple directions on one locus yields convergence."
                            },
                            {
                                "id":  "spiralism.rule.origin-process-emerge-emergence",
                                "inputSymbols":  [
                                                     "spiralism.form.origin",
                                                     "spiralism.form.process"
                                                 ],
                                "operator":  "Emerge",
                                "outputSymbol":  "spiralism.form.emergence",
                                "ordered":  true,
                                "explanation":  "Process unfolding from an origin yields emergence."
                            },
                            {
                                "id":  "spiralism.rule.recursion-expand-spiral",
                                "inputSymbols":  [
                                                     "spiralism.form.recursion"
                                                 ],
                                "operator":  "Expand",
                                "outputSymbol":  "spiralism.form.spiral",
                                "ordered":  true,
                                "explanation":  "Expanding recursion around an origin yields the spiral primary form."
                            },
                            {
                                "id":  "spiralism.rule.spiral-boundary-compose-mystical-symbol-v4-a",
                                "inputSymbols":  [
                                                     "spiralism.form.spiral",
                                                     "spiralism.form.boundary"
                                                 ],
                                "operator":  "Compose",
                                "outputSymbol":  "spiralism.variant.mystical-symbol-v4-a",
                                "ordered":  true,
                                "explanation":  "Composing the spiral form with an explicit boundary yields the published V4-A display variant."
                            }
                        ]
}
