{"_id":"@333eco/sey","_rev":"2-8e7cd7aa15cbd6e72a799776a06b3498","name":"@333eco/sey","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@333eco/sey","version":"1.0.0","keywords":["sey","sport","rules","cc0","public-domain","conformance-vectors","specification","mulberry32","fisher-yates"],"author":{"name":"Thon Ly"},"license":"CC0-1.0","_id":"@333eco/sey@1.0.0","maintainers":[{"name":"thonly","email":"thonly@heartbank.ceo"}],"homepage":"https://seysays.org/rules/","bugs":{"url":"https://github.com/thonly/seysays/issues"},"dist":{"shasum":"8a7159fbc5318bd97f2dd056855bea4665bf3d6d","tarball":"https://registry.npmjs.org/@333eco/sey/-/sey-1.0.0.tgz","fileCount":6,"integrity":"sha512-xOpmgK30boeE8xDJBt1UdB7wyjoKm7gtJA9+94dR9cktA/GZHsWB3iLFbowMlgbW9WonepRqPOieigE7dldWjg==","signatures":[{"sig":"MEYCIQDEzvEeVadpTi0f+R3gaFtQf2+EUWVTTbO3mOTnuRi3aQIhAIv2JedH005eIMA6hzZKPnNGtcMnANy1M+t8rQu1tE7H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49877},"type":"module","exports":{"./rules.md":"./rules.md","./package.json":"./package.json","./caller-spec.md":"./caller-spec.md","./caller-vectors.json":"./caller-vectors.json"},"gitHead":"fb1fc559049275797610ebc08cb86c5e8e2cfa1a","_npmUser":{"name":"thonly","email":"thonly@heartbank.ceo"},"repository":{"url":"git+https://github.com/thonly/seysays.git","type":"git","directory":"shared"},"_npmVersion":"11.0.0","description":"sey — the rules of the sport, the cross-platform caller contract, and the conformance vectors. CC0: no permission is needed and none can be withheld.","directories":{},"_nodeVersion":"22.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sey_1.0.0_1788282305220_0.8856790489143005","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"_id":"@333eco/sey@1.1.0","bugs":{"url":"https://github.com/thonly/seysays/issues"},"dist":{"shasum":"c6340f40cf5c906b396a0e30dda2e31019ebdc39","tarball":"https://registry.npmjs.org/@333eco/sey/-/sey-1.1.0.tgz","fileCount":6,"integrity":"sha512-yQifiss/8XDgKWxVxjsYH3vOYsnXenENL23o1c/mL76d8tPo/PBWW/z64fF8sNcPvcWmGdUSuWt7ZIu/6LWmSQ==","signatures":[{"sig":"MEQCIC9QEpDKhKKeRvyWTc8ntkfEwkJhtI19SH8tLMtbgyWzAiANoYhqdGijcfqEtEJDo54LIv2LKfcC/tjH/xA2PGoUCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD7ZFuBa8SFRrmBetke6VfxAmC/7SVbR/vWo8VbYwb2nAIgIn4zDVU/nrtLAgO1lBqk6joMB62g41irPiokcVApMjE="}],"unpackedSize":67585},"name":"@333eco/sey","type":"module","author":{"name":"Thon Ly"},"exports":{"./rules.md":"./rules.md","./package.json":"./package.json","./caller-spec.md":"./caller-spec.md","./caller-vectors.json":"./caller-vectors.json"},"gitHead":"a1783f5977f2f95fb8600594d669b035a8e47e0d","license":"CC0-1.0","version":"1.1.0","_npmUser":{"name":"thonly","email":"thonly@heartbank.ceo"},"homepage":"https://seysays.org/rules/","keywords":["sey","sport","rules","cc0","public-domain","conformance-vectors","specification","mulberry32","fisher-yates","hmac-sha256","rejection-sampling"],"repository":{"url":"git+https://github.com/thonly/seysays.git","type":"git","directory":"shared"},"_npmVersion":"10.9.8","description":"sey — the rules of the sport, the cross-platform caller contract, and the conformance vectors. CC0: no permission is needed and none can be withheld.","directories":{},"maintainers":[{"name":"thonly","email":"thonly@heartbank.ceo"}],"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sey_1.1.0_1789330682519_0.4347200480079958"}}},"time":{"created":"2026-09-01T17:05:05.007Z","modified":"2026-09-13T20:18:02.759Z","1.0.0":"2026-09-01T17:05:05.325Z","1.1.0":"2026-09-13T20:18:02.600Z"},"bugs":{"url":"https://github.com/thonly/seysays/issues"},"author":{"name":"Thon Ly"},"license":"CC0-1.0","homepage":"https://seysays.org/rules/","keywords":["sey","sport","rules","cc0","public-domain","conformance-vectors","specification","mulberry32","fisher-yates","hmac-sha256","rejection-sampling"],"repository":{"url":"git+https://github.com/thonly/seysays.git","type":"git","directory":"shared"},"description":"sey — the rules of the sport, the cross-platform caller contract, and the conformance vectors. CC0: no permission is needed and none can be withheld.","maintainers":[{"name":"thonly","email":"thonly@heartbank.ceo"}],"readme":"# @333eco/sey\n\n**sey** is a circulation sport: a circle, a ball, and everybody's name. This\npackage is the sport handed over as files — the rules, the caller contract that\nevery client must reproduce, and the conformance vectors that let you prove\nyours does.\n\nAll three documents are **CC0**. Play it, teach it, run tournaments, write about\nit, build your own app for it. No permission is needed and none can be withheld.\n\n```sh\nnpm install @333eco/sey\n```\n\n```js\nimport vectors from \"@333eco/sey/caller-vectors.json\" with { type: \"json\" };\n\n// Your caller, seeded with 1, must emit exactly this:\nvectors.cases.prng_seed_1.uint32; // [2693262067, 11749833, ...]\n```\n\nThe Markdown is shipped as data, not as a module — read it from\n`node_modules/@333eco/sey/`, or from the canonical copies at\n<https://seysays.org/rules.md> and <https://seysays.org/caller-spec.md>, which\nare the same bytes.\n\n## What is in here\n\n| File | What it is |\n| --- | --- |\n| `rules.md` | How the sport is played. The canonical copy that `seysays.org/rules/` is written from. |\n| `caller-spec.md` | The cross-platform contract: mulberry32, a descending Fisher–Yates, the bag that guarantees equal touch, and the circle construction. Written to be ported, with reference Swift and Kotlin inline. **Two versions, told apart by the seed:** a number is version 1, 64 hex characters is version 2 (every circle made from 13 September 2026). |\n| `caller-vectors.json` | The conformance vectors. Authoritative — a client that disagrees with these is wrong, including ours. |\n\n## Why the vectors are published, and why that is not a courtesy\n\nThe sport's central promise is that touches are distributed **equally yet\nrandomly**, and that is the one promise a participant cannot check by watching:\nover any short window a fair sequence and a rigged one look identical. So the\ncheck is moved off the field and into the open. Run the vectors against any\nimplementation — ours included — and the promise becomes falsifiable by anyone\nwho cares to try.\n\nThat is why the mechanism was dedicated to the public domain rather than kept:\nsee claim 17 of [*An Impartially-Called Circulation Sport for the AI\nAge*](https://thonly.org/research/the-sport-that-says-your-name).\n\n## Versioning\n\nThe version tracks the **documents**, and semver here means something specific:\n\n- **major** — the vectors changed for a seed that has already shipped. Circles\n  saved on one client would replay differently on another. This is the break\n  the spec exists to prevent; version the seed, not the algorithm.\n- **minor** — new material that does not invalidate a conforming client.\n- **patch** — wording, typos, clarification with no behavioural consequence.\n\n## Trademarks\n\nThe **sport carries no marks, and never will.** Apps and equipment made for it\nmay carry their own; B-Sey™ and B-Sey℠ are the institution's, and nothing in\nCC0 conveys any right to them. Build a client, call it whatever you like — just\nnot that.\n","readmeFilename":"README.md"}