=== cyclic linked list via properties ===
allows {value:1}: true
allows {value:1,next:{value:2}}: true
rejects {value:1,next:{value:'x'}}: true
deep ok: true
deep bad: true
apply errors: next.value must be a number (was a string)
=== cyclic via anyOf (json-like) ===
/app/ark/util/errors.ts:13
	throw new ctor(message)
	      ^

ParseError: Indexed key definition 'number' must be a string or symbol
    at throwError (/app/ark/util/errors.ts:13:8)
    at throwParseError (/app/ark/util/errors.ts:21:2)
    at Object.parse (/app/ark/schema/structure/index.ts:71:14)
    at parseNode (/app/ark/schema/parse.ts:193:37)
    at SchemaScope.node (/app/ark/schema/scope.ts:681:16)
    at <anonymous> (/app/ark/schema/constraint.ts:141:45)
    at Array.map (<anonymous>)
    at Object.parse (/app/ark/schema/constraint.ts:141:25)
    at parseNode (/app/ark/schema/parse.ts:193:37)
    at SchemaScope.node (/app/ark/schema/scope.ts:681:16)

Node.js v22.23.2
node:internal/errors:983
  const err = new Error(message);
              ^

Error: Command failed: node ./ark/json-schema/refExperiment.ts
    at genericNodeError (node:internal/errors:983:15)
    at wrappedFn (node:internal/errors:537:14)
    at checkExecSyncError (node:child_process:916:11)
    at execSync (node:child_process:988:15)
    at file:///app/ark/repo/ts.js:9:1
    at ModuleJob.run (node:internal/modules/esm/module_job:343:25)
    at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:681:26)
    at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5) {
  status: 1,
  signal: null,
