{"_id":"@uniweb/schemas","_rev":"30-a1615c683aeae83c985492059cb87fba","name":"@uniweb/schemas","dist-tags":{"latest":"0.7.2"},"versions":{"0.1.0":{"name":"@uniweb/schemas","version":"0.1.0","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.1.0","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"8bbcc97d8e328b8c2645dce8f3d2d9e1b885664f","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.1.0.tgz","fileCount":12,"integrity":"sha512-oherSv7iOfM8MPEHMb6v76AifVeGCi8vxohklJ4CdoqzayZStf5Q1SAcHT+6PiF3ClUmZMffge5R93PfOmhi8A==","signatures":[{"sig":"MEUCIDZVsHVSQRZoIMY7iMmnpUCSDm3lEc2MTcciCY6epX9YAiEAmoUAhzfC3wZz27/JykhC4gTrt57OK+9mmurARU0qqvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43227},"main":"src/index.js","type":"module","exports":{".":"./src/index.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"Standard schema definitions for Uniweb components","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemas_0.1.0_1769195697667_0.6438816295688601","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@uniweb/schemas","version":"0.1.1","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.1.1","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"277e6efbf4dd596142d010209dd810e1a58275c1","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.1.1.tgz","fileCount":12,"integrity":"sha512-uCBeMV4gSQGfEzVVUeMFNcFayiTTI5muJ4C5q7gcBc7pTrkNAj4yl4LRBx6jQlVxq0+tfJQUrRV6hoj/RNCW4g==","signatures":[{"sig":"MEUCIQDCinGGSCKNttg2hZh5wu0wzw581LY/sL+TVj9881nGfAIgUEPvHJM2xCVwG0uuB9iRbrfWOXHruHIUti50iM/XPuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44033},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.1.1.tgz","exports":{".":"./src/index.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/622ef2f724ca940bb5bd1743734eae19/uniweb-schemas-0.1.1.tgz","_integrity":"sha512-uCBeMV4gSQGfEzVVUeMFNcFayiTTI5muJ4C5q7gcBc7pTrkNAj4yl4LRBx6jQlVxq0+tfJQUrRV6hoj/RNCW4g==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"Standard schema definitions for Uniweb components","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemas_0.1.1_1769205707651_0.2876579752418862","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@uniweb/schemas","version":"0.1.2","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.1.2","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"97fdd9e086f4a43983d4dd32f7adde4823e2a4ad","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.1.2.tgz","fileCount":13,"integrity":"sha512-wihQ9FjC/xVLCpjGogo+2Dyt+AJTC9XjtyqT+JjTo66hdHHoSG5Ej+fGYfnAIPVFpxX2dW5LrHzAnlZYfPK+Sg==","signatures":[{"sig":"MEUCIQDX1hiBJCn1K91gmqYlahxlCdLRMnenNqbaQl9FXM1xhwIgWt7MbJzk8Afi0DDQP0aPqb+LGdc+Er10wiH6akse1eA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45904},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.1.2.tgz","exports":{".":"./src/index.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/4e7baeab5191642b116449dcf9ff81be/uniweb-schemas-0.1.2.tgz","_integrity":"sha512-wihQ9FjC/xVLCpjGogo+2Dyt+AJTC9XjtyqT+JjTo66hdHHoSG5Ej+fGYfnAIPVFpxX2dW5LrHzAnlZYfPK+Sg==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"Standard schema definitions for Uniweb components","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemas_0.1.2_1769377475658_0.02908351401177689","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@uniweb/schemas","version":"0.2.0","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.0","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"8270305fed6f5aa5eccba1edfa4b5e07b860f054","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.0.tgz","fileCount":13,"integrity":"sha512-z5uuJKXh10q151ouVCIVuNnsB8+1gOjAXf8FfCg5aba7sh9a0NdN6e7LY3OlgdfQNH5yfKn3gKSRAUqdJ5OkmA==","signatures":[{"sig":"MEQCIG5CCnc+OPrcIKg25WTXsziyyvQQ6k+kYFqZrCvfnGTmAiBIHnr6DOL7x9DRtKEYwB31tLdG1XlfVs7PUWCkFOjlTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46601},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.0.tgz","exports":{".":"./src/index.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/s5/rcbxggcn2d33_qj96x9ghk600000gn/T/18b826bbc4ef80664c086ca5a667aff9/uniweb-schemas-0.2.0.tgz","_integrity":"sha512-z5uuJKXh10q151ouVCIVuNnsB8+1gOjAXf8FfCg5aba7sh9a0NdN6e7LY3OlgdfQNH5yfKn3gKSRAUqdJ5OkmA==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.7.0","description":"Standard schema definitions for Uniweb components","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.0_1770067295823_0.22702035739848148","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@uniweb/schemas","version":"0.2.1","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.1","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"4ecde00cc57c95b87406592d1c05dfef8f9bf069","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.1.tgz","fileCount":13,"integrity":"sha512-bkVLMVdNOG7zHLSVGj7kP7BGrmeoO2KRQQQxH5tARQroKbbu2ovh/0qMdS7aIXH18RepdR3aXdKVe7+7caj4bw==","signatures":[{"sig":"MEUCIHKhrBcHknvJfrplT/Jt9mkS1leJEoKrowqIZ1MLe3eDAiEA3yT8CPtxuFy+gZof/tFfYS71wpAr2HBLKKsAM4tOB8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46601},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.1.tgz","exports":{".":"./src/index.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/s5/rcbxggcn2d33_qj96x9ghk600000gn/T/c5b29e9514cfae1674c876f19bf049bf/uniweb-schemas-0.2.1.tgz","_integrity":"sha512-bkVLMVdNOG7zHLSVGj7kP7BGrmeoO2KRQQQxH5tARQroKbbu2ovh/0qMdS7aIXH18RepdR3aXdKVe7+7caj4bw==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.7.0","description":"Standard schema definitions for Uniweb components","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.1_1770067404613_0.5601884881980448","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@uniweb/schemas","version":"0.2.2","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.2","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"873c90c5af18dc79571532d46eb082f77febf632","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.2.tgz","fileCount":14,"integrity":"sha512-LKQTQTlM94CEQk9dIhj5Rn72z2UVvt8YwKMTta+ZXSqTKeIHTJ+PP6zYWHUu8wsL219SqH940clMWLn9dJ4ewA==","signatures":[{"sig":"MEQCIFaB8Sx+fiMsoMoQfPet3qwUk6+BMillLOGr0iNudVKjAiAkA77/Gal2UmIWQwMNrYyj2alWfihdb6q/I0oFflfzrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54373},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.2.tgz","exports":{".":"./src/index.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/s5/rcbxggcn2d33_qj96x9ghk600000gn/T/4fe9d2c4dbb740f6884daa4b8f33a693/uniweb-schemas-0.2.2.tgz","_integrity":"sha512-LKQTQTlM94CEQk9dIhj5Rn72z2UVvt8YwKMTta+ZXSqTKeIHTJ+PP6zYWHUu8wsL219SqH940clMWLn9dJ4ewA==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.7.0","description":"Standard schema definitions for Uniweb components","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.2_1781223011377_0.6166249840609948","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@uniweb/schemas","version":"0.2.3","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.3","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"5efcea84d78c058e41f03eccd77ff92b0729d6ee","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.3.tgz","fileCount":14,"integrity":"sha512-e5c2UOuwp4aVXl3VZVrFxmFIYT6NyrZX6Z+nutQ02W+ZrP1WUtcFssI+vCDQ4Z9B9oHwp2Y+cToKmwEhYnHORw==","signatures":[{"sig":"MEUCIQCFIXnUjVtL7fkGPpofSLCG3Iqx7FQLB4mdivn/YMBJHgIgH3/mETLQKwWtHB+B5XByKSWE219yzmQL/v2aaWqAeMI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55393},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.3.tgz","exports":{".":"./src/index.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/783f6a79ae2d5ca46a9028bb1be5ba0b/uniweb-schemas-0.2.3.tgz","_integrity":"sha512-e5c2UOuwp4aVXl3VZVrFxmFIYT6NyrZX6Z+nutQ02W+ZrP1WUtcFssI+vCDQ4Z9B9oHwp2Y+cToKmwEhYnHORw==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"Standard schema definitions for Uniweb components","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.3_1781494181509_0.4218844679062519","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@uniweb/schemas","version":"0.2.4","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.4","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"607a7fc4015c84254816a73b9256f2bda5870ea5","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.4.tgz","fileCount":14,"integrity":"sha512-KSbsPB4Hhi2KUlJgKeGn1mNcSD+WV1wQWQca4g2alXDc9XBbxp4k+EoJh2m8CsurJ/REeSyf2dRo37sVuya3KQ==","signatures":[{"sig":"MEQCIBbKqWDlqgE40T7voCpzG53jjgKncmJiVqlrpV3ugyvgAiA4XL3ufsHPiXcIFCAPbtPWUgSENxY4CXU4EeOF1UaeIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56124},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.4.tgz","exports":{".":"./src/index.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/0e51afdf1fe58d5e2441f26ef7406b76/uniweb-schemas-0.2.4.tgz","_integrity":"sha512-KSbsPB4Hhi2KUlJgKeGn1mNcSD+WV1wQWQca4g2alXDc9XBbxp4k+EoJh2m8CsurJ/REeSyf2dRo37sVuya3KQ==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"Standard schema definitions for Uniweb components","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.4_1782925347293_0.23692722832467505","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@uniweb/schemas","version":"0.2.5","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.5","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"4ec5b424fbd9c82f20f1bd82a46d3eb0e85f9f87","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.5.tgz","fileCount":15,"integrity":"sha512-tqus/sY/6z+cuaI6kSsNHIG/hbxBkKesPcYT189MXzmBEvoC4r4qtdpRHvCWAfH7PVsRiqYVKTSGUjsbhPKheg==","signatures":[{"sig":"MEYCIQCPabipHa+iADph8ZD70gZv5T+7CqEFeVED0mGJ4QlsPwIhAL+5oM0Qbtrv8Ev2j1oIwXj/AS/7bFAliyDoMTAKDjIu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63077},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.5.tgz","exports":{".":"./src/index.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/fe4bd138522a9c58b7b0cdc494f3a75a/uniweb-schemas-0.2.5.tgz","_integrity":"sha512-tqus/sY/6z+cuaI6kSsNHIG/hbxBkKesPcYT189MXzmBEvoC4r4qtdpRHvCWAfH7PVsRiqYVKTSGUjsbhPKheg==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"Standard schema definitions for Uniweb components","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.5_1785539439622_0.9705698387647046","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@uniweb/schemas","version":"0.2.6","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.6","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"cf48a200e8c88d38e64ca54eaffb4973b6c4c593","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.6.tgz","fileCount":17,"integrity":"sha512-ZACk6i4AEBzhPyKh61NDpKvBjqmoOjG7OkyKbP/gP4hqhJkVZaQEDZZ7IdJ7tLB1BDgcXztNF8HUd8mU7inVkg==","signatures":[{"sig":"MEUCIQDI4nW2B41g0XBWNKB6AAtNFuWI8Bp0lMCQt9E/ZPhDigIgNbfyfQhcjzrZsJkLsZ2DxZ92gAKbfENn1xUtP6YKFWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107361},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.6.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"scripts":{"test":"vitest run"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/e3d7171e20098f473960fbdca86d469a/uniweb-schemas-0.2.6.tgz","_integrity":"sha512-ZACk6i4AEBzhPyKh61NDpKvBjqmoOjG7OkyKbP/gP4hqhJkVZaQEDZZ7IdJ7tLB1BDgcXztNF8HUd8mU7inVkg==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format and its standard schema definitions","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.6_1785940228684_0.1242054608197738","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@uniweb/schemas","version":"0.2.7","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.7","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"d9fea632bac8ae71157faa2d9cea9214b9bff122","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.7.tgz","fileCount":17,"integrity":"sha512-j0iSq/XrIHQgtYduvIahFI+2zK++0LxGvWsKy9Cp9HTmSllYyG6CS3hel2XKoVzwSvFAJZJivVwBzBxW07Osnw==","signatures":[{"sig":"MEYCIQCZOH2FR8HHbRlIaZBoa/i/QTGR+EyYX6HL3A5gyhE3SAIhALdxhiTHRWdFfIMfi85bP68jve+Fgcxhe6G2j5VdnOEE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108194},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.7.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"scripts":{"test":"vitest run"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/9ffc5a7518f7bcc8e4e23c58d60cc4f1/uniweb-schemas-0.2.7.tgz","_integrity":"sha512-j0iSq/XrIHQgtYduvIahFI+2zK++0LxGvWsKy9Cp9HTmSllYyG6CS3hel2XKoVzwSvFAJZJivVwBzBxW07Osnw==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format and its standard schema definitions","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.7_1785941189262_0.6248721276260569","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@uniweb/schemas","version":"0.2.8","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.8","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"08be1fe3f857b53fbaeec4d3d7731505ee72bbf7","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.8.tgz","fileCount":17,"integrity":"sha512-jLEkgF+JrGiTyVKBRN4kyWCA0dD8eVyQVVIelCTNudag1zL8nb9XojAAfQ1AzJUPcBalVgZO2rx3JHd6eEA60w==","signatures":[{"sig":"MEQCIGHxEUJvzaiFlV0lBP03HujxrRPAmXG+x5n8QPgWvKyhAiBIwCGhEpLs7zS5MlusanCqP2gcLPcVxgqBFgdcM8CRFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127109},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.8.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"scripts":{"test":"vitest run"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/071b00038563ce362ccb6e46b342f11f/uniweb-schemas-0.2.8.tgz","_integrity":"sha512-jLEkgF+JrGiTyVKBRN4kyWCA0dD8eVyQVVIelCTNudag1zL8nb9XojAAfQ1AzJUPcBalVgZO2rx3JHd6eEA60w==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format and its standard schema definitions","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.8_1785958682803_0.4600658050289099","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@uniweb/schemas","version":"0.2.9","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.9","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"2c6d1849bcd5c390e692ef72599a6c263f7c2926","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.9.tgz","fileCount":17,"integrity":"sha512-/ONfKgoJqqORHrfcFw5u+w/bWC99ydgMdWwmqG03Br/NheijY0I02rGWRQ4BYjggmF8jlnDbBwlESTVheHywPw==","signatures":[{"sig":"MEUCIQCbl7XyhbQX2fiehownYUM3BudO4zG21Qjni2lZweTLTwIgPbQPBorxVajWq9XeMGqp9fUBJGSuyr0hMr0cAAZXC+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128189},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.9.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"scripts":{"test":"vitest run"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/734bab93c6f5ca3527e746a1aa4eb5bb/uniweb-schemas-0.2.9.tgz","_integrity":"sha512-/ONfKgoJqqORHrfcFw5u+w/bWC99ydgMdWwmqG03Br/NheijY0I02rGWRQ4BYjggmF8jlnDbBwlESTVheHywPw==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format and its standard schema definitions","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.9_1785959303864_0.3009148440892342","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@uniweb/schemas","version":"0.2.10","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.10","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"752987de701f73932080335b0e96c9f94292a151","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.10.tgz","fileCount":17,"integrity":"sha512-K7rV6/EwPKt2AP7pGPGG30O14xLhUGevYaipxLPzwPU/NJ68D3tFvCXlcJoovkNbfHOTLfO4+KRULlKt9XJoYw==","signatures":[{"sig":"MEUCICC9kdaDg6sQyu7XTl9L/JvF+ggU7ZT14SnSrqM7rVZ3AiEA8y4KXcc1hSE2cx+U22HPC6ObsQvrul5IJ/QAkcKpHn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128691},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.10.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"scripts":{"test":"vitest run"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/a835c2add17e935f6edc7183fc491f48/uniweb-schemas-0.2.10.tgz","_integrity":"sha512-K7rV6/EwPKt2AP7pGPGG30O14xLhUGevYaipxLPzwPU/NJ68D3tFvCXlcJoovkNbfHOTLfO4+KRULlKt9XJoYw==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format and its standard schema definitions","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.10_1785963190782_0.9799959218752539","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@uniweb/schemas","version":"0.2.11","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.11","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"bec33c391adfdef531a25a73f693c306be70fbb3","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.11.tgz","fileCount":17,"integrity":"sha512-fucMutJ5IqL8o9ygt+Mg3CNtDguwfWRVQs93ztYq9Q7ureBM9cBs0Nqso3JSV+BVg13UJZs7okEHGqTUmoNs2Q==","signatures":[{"sig":"MEQCIFJGmzuI0aEAutpgymPhDz4ueY9+gV+LCYUTTvYpzNZGAiAMWGb270pxk/JDzmytXCMVZ9vt29b1PqZc2PjZKG1tjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132230},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.11.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"scripts":{"test":"vitest run"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/c3deba7ea7646120ae242fd112168bd4/uniweb-schemas-0.2.11.tgz","_integrity":"sha512-fucMutJ5IqL8o9ygt+Mg3CNtDguwfWRVQs93ztYq9Q7ureBM9cBs0Nqso3JSV+BVg13UJZs7okEHGqTUmoNs2Q==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format and its standard schema definitions","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.11_1787806599183_0.09512458117563871","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@uniweb/schemas","version":"0.2.12","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.12","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"ac8a034d1a581a0467b93cf03e484fe23a03a626","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.12.tgz","fileCount":17,"integrity":"sha512-kNBkAQ83s8PbZUNx1t/7HoBUUY5MHEGCdXkcUMAI/ZEhlROIJ6hdFzm7spX98MxJr0w2Qcki/d+JlLEs53He9w==","signatures":[{"sig":"MEQCIC+VPi3Rt6x25bNUs1HaoIEJrk2E4x95dRa0CDvz2q1+AiAdFbMdu24hvkCqbi+DDJ3S1g6YhHuF7X8lDbx9r3JwIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136963},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.12.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js"},"scripts":{"test":"vitest run"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/s5/rcbxggcn2d33_qj96x9ghk600000gn/T/3dec7b2b9b587f3af55d3857557ce365/uniweb-schemas-0.2.12.tgz","_integrity":"sha512-kNBkAQ83s8PbZUNx1t/7HoBUUY5MHEGCdXkcUMAI/ZEhlROIJ6hdFzm7spX98MxJr0w2Qcki/d+JlLEs53He9w==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.7.0","description":"The Uniweb data-schema format and its standard schema definitions","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.12_1788300489656_0.4400403254501095","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@uniweb/schemas","version":"0.2.13","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.13","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"8ca66f0952b78b0fc764af4a2a67eee1dfa9d843","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.13.tgz","fileCount":18,"integrity":"sha512-bgnzghNWX/MBN4L0y32fkNmwr78Pu4mEoSXER5QBUDp00k/FOhxyaRlU/i58be+wctQg1BVndlQReyaBlaZbJg==","signatures":[{"sig":"MEUCIBzWSinfDTdRmgP+fnwvbESsT2UAGdJsaASmz3I6+7tXAiEAuHLSnhqCcjHFgqw519LGSkptr3S+BAf5dN/sY7+3nu8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141615},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.13.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./utils/*":"./src/utils/*.js","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js"},"scripts":{"test":"vitest run"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/d078ab00f33b836c19a8b567919bcf62/uniweb-schemas-0.2.13.tgz","_integrity":"sha512-bgnzghNWX/MBN4L0y32fkNmwr78Pu4mEoSXER5QBUDp00k/FOhxyaRlU/i58be+wctQg1BVndlQReyaBlaZbJg==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format and its standard schema definitions","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.13_1788317248371_0.5299508631450478","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@uniweb/schemas","version":"0.2.14","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.14","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"5cd44c3bee6c499b3bfe88809320a3fed37a209e","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.14.tgz","fileCount":21,"integrity":"sha512-GknswaEQXecb3FqMiFRoCldh538bFURLBna78I8JnORMKNfKuhQ7ArcPBiceeE2HF6jXy0lXQYxEQBxFQ8sM6Q==","signatures":[{"sig":"MEUCIQC0bBKpDLeHB4X1g/PvMYUox4ZsLjfIQt7C8QOOkyj2WwIgJyecQ4ep2rA9CCBjOehI/NqG2rdodynX/C1wCw3faoE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCO//bUEPrFuh3Ex9Z69xUgEX449CaA68pWnJ9o559e1gIhAJ27cyqtc+6VIBSEJHgpr2DWSZvILq5eTuCM6WQAR1cZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172810},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.14.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js"},"scripts":{"test":"vitest run","gen:families":"node scripts/gen-families-json.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/6e41b07b05aebf8b0066a59d334f63d0/uniweb-schemas-0.2.14.tgz","_integrity":"sha512-GknswaEQXecb3FqMiFRoCldh538bFURLBna78I8JnORMKNfKuhQ7ArcPBiceeE2HF6jXy0lXQYxEQBxFQ8sM6Q==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.14_1789529951947_0.6281849530695662","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@uniweb/schemas","version":"0.2.15","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.2.15","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"82080c7da0260dbe5ca5bbcdd8fac5b96ffac024","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.2.15.tgz","fileCount":23,"integrity":"sha512-kyvcOYUCZaqF27UjbP2s45GbbJuNsP+JA9H5Yn8RcSQai4hfPhpoSbCdlHA4QBi5E/USHoWWcje4Z2PFcD52yA==","signatures":[{"sig":"MEQCIDs4YZgHDdF7rKkCxbGP38yTyeYw26sw+OztW6CH6L8eAiA8/Q6ZMg8V4qY1ZX0Z+J5I7Kq94PUQvtnyFlGsW3jK0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDVV8Fx75ZM7fs1O+6LY2W9f6wPmj9wZVEMWvtVntfF3AIhANg16XoXKxaleg+Fq9rP/zkaSi52iSGy7agw38F9UZD0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180213},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.2.15.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js"},"scripts":{"test":"vitest run","gen:families":"node scripts/gen-families-json.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/a66a4d4cc3e8ac035dc09199ec8ca9d3/uniweb-schemas-0.2.15.tgz","_integrity":"sha512-kyvcOYUCZaqF27UjbP2s45GbbJuNsP+JA9H5Yn8RcSQai4hfPhpoSbCdlHA4QBi5E/USHoWWcje4Z2PFcD52yA==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.2.15_1789534627555_0.02839156581441693","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@uniweb/schemas","version":"0.3.0","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.3.0","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"c4aa318740225543589f1574f6c5da3b57a870db","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.3.0.tgz","fileCount":23,"integrity":"sha512-BPr99Bu2iG3Gp+T2N2gSOQalCF3pKrxBr77O5/YpoCxGF28o6Pfc02CdxvV4aDbKI5PNkOfll8rP9t1DUPONIQ==","signatures":[{"sig":"MEYCIQCa/M+U1yhWvbWTfjlA2M37U/o5Lj/w5XqXDEDJ/SDX0wIhAL2IfIiqVMFYVaIuD4deGXNZfv4wTcV2OstmPrulsXkD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIER2Rq2TTygUaU5K7nZBFTExNN1uEVzVQbkR30/3KL4iAiEAkvAzkHHo8a1xmObWI7PruKHMAlZrY9Qw1TCgL+eVIqM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181242},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.3.0.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js"},"scripts":{"test":"vitest run","gen:families":"node scripts/gen-families-json.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/ce86aeca88985bd1b0523593faf01fce/uniweb-schemas-0.3.0.tgz","_integrity":"sha512-BPr99Bu2iG3Gp+T2N2gSOQalCF3pKrxBr77O5/YpoCxGF28o6Pfc02CdxvV4aDbKI5PNkOfll8rP9t1DUPONIQ==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.3.0_1789562433676_0.3432916740421923","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@uniweb/schemas","version":"0.3.1","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.3.1","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"659c56c9922a8872095b91977d3eb49daa33c86d","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.3.1.tgz","fileCount":28,"integrity":"sha512-fWZSrJbHuL4+D3ZTJbhDiskTKFmiFW9MIzAk5rLGhavDSIvH4VHWhq9Y+/qAMaghm+YEEsUi1i6s6NnjiFEMKw==","signatures":[{"sig":"MEUCIQDg6xEQkEBowHdoQjsfptamDPwwpQIXLrlHUThTcUl+ywIgM6jdbuqXy7LLE5GTxsz6W488WXoJlJeZLIw/SBVft0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGdUxv6wO+RVcFlRTUtUAq2CI2qwhiPXLbW4ZDG0HvHNAiEA52JOLOyHUrTKDNyTb9Vw6jFiQUYoPcXgNg2g0H4xWVQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260807},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.3.1.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./content":"./src/content.js","./starter":"./src/starter.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js"},"scripts":{"test":"vitest run","gen:families":"node scripts/gen-families-json.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/s5/rcbxggcn2d33_qj96x9ghk600000gn/T/ebaea8df66dbf110f6219aacd1921113/uniweb-schemas-0.3.1.tgz","_integrity":"sha512-fWZSrJbHuL4+D3ZTJbhDiskTKFmiFW9MIzAk5rLGhavDSIvH4VHWhq9Y+/qAMaghm+YEEsUi1i6s6NnjiFEMKw==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.7.0","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","@uniweb/content-reader":"1.2.5","@uniweb/semantic-parser":"1.4.1"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.3.1_1789590968810_0.6081369538076229","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@uniweb/schemas","version":"0.3.2","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.3.2","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"99bc7a59c77d1a8fdd14a17c378d4c9c52665ba3","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.3.2.tgz","fileCount":30,"integrity":"sha512-ndvBX5ycToXBpMxSg5jNyuYhJZc31N9RX1Gg2r8lF0PQ6VYnOHUpCQsvL4pgR5tfGPC7UD49P9Sxx2MKelqlDw==","signatures":[{"sig":"MEUCIQCuhjePs6eWU5+btQCWMf5excpvj8KKOOwNHh1JNSlwOwIgSroQ8Ts6XFHJYxwQHsdvIdroeuc+4ExRc7Qh37XT8cc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDrMN63fOQGmuARnWsWi4ApPdF71BQR3qVRB3dajVkE0AIgflvLdKqj5XQwhfuhP52s93B0vccgWy1cjI0rC0LaVPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270342},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.3.2.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./content":"./src/content.js","./starter":"./src/starter.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./site-tags":"./src/site-tags.js","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js","./site-tags.json":"./src/site-tags.json"},"scripts":{"test":"vitest run","gen:vocabulary":"node scripts/gen-vocabulary.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/78e7b7b93da8aa0345b93b07aff18fd0/uniweb-schemas-0.3.2.tgz","_integrity":"sha512-ndvBX5ycToXBpMxSg5jNyuYhJZc31N9RX1Gg2r8lF0PQ6VYnOHUpCQsvL4pgR5tfGPC7UD49P9Sxx2MKelqlDw==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families and site tags","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","@uniweb/content-reader":"1.2.5","@uniweb/semantic-parser":"1.4.1"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.3.2_1789615506501_0.7018467332047948","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@uniweb/schemas","version":"0.3.3","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.3.3","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"c716d5bf60e9daf2483aadd44f18003204b90db4","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.3.3.tgz","fileCount":30,"integrity":"sha512-wrCj/oIKfJsxJ+HZeF3xBny4zUv5BRWI2QFFt/Aniy+LABnE+gWcocqvRgCoTtb42EJQdSmZ02ox/0fRJ++iPQ==","signatures":[{"sig":"MEUCIQCo8E769p7Bdq1Y02r6Se9XoSYJcRRDcy75f6ESDEu3mgIgQwAOFurWKXQvuDvVby7C/R093LYQDV93AlZrKiHcOmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDqAIylWNwAOi0YRBds+twjt6pnDRuwDJqklabG2ij88gIga+Wqm57bVVjGuUYT1u0LilrdxkS25H/mdAf/ZMPLkBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270530},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.3.3.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./content":"./src/content.js","./starter":"./src/starter.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./site-tags":"./src/site-tags.js","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js","./site-tags.json":"./src/site-tags.json"},"scripts":{"test":"vitest run","gen:vocabulary":"node scripts/gen-vocabulary.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/db3fb58aedc0965662097d90ddb8bc1d/uniweb-schemas-0.3.3.tgz","_integrity":"sha512-wrCj/oIKfJsxJ+HZeF3xBny4zUv5BRWI2QFFt/Aniy+LABnE+gWcocqvRgCoTtb42EJQdSmZ02ox/0fRJ++iPQ==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families and site tags","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","@uniweb/content-reader":"1.2.5","@uniweb/semantic-parser":"1.4.1"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.3.3_1789617358263_0.8944469595755897","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@uniweb/schemas","version":"0.3.4","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.3.4","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"ef215d5fd9b6e69cc7ec2135556ffc261e24ca65","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.3.4.tgz","fileCount":30,"integrity":"sha512-XpxAOqvZB+cBMfgLD2edaMz70wKVgLVGpwzMZgQAoGM9rXwjOrtO3uOHlBN/85hjVJIKKbTJRFsl9AeVcnduBA==","signatures":[{"sig":"MEYCIQCk3H50XS3i/hbMX6gUw0y307LTdG+CXBNFiP9gZD8VUAIhANPlULRXaOcn95un8oaoynApBjFHkZ0U4cMMnWsqoLrN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCJhQSu2j+hf9fARg/CpVPvAqFCJkAD7ff+JEheJ58kwgIhAJA7X1RU4xruDA2AY9GJziC2eCstyAbIgbV5Qayy7+Z4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271062},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.3.4.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./content":"./src/content.js","./starter":"./src/starter.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./site-tags":"./src/site-tags.js","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js","./site-tags.json":"./src/site-tags.json"},"scripts":{"test":"vitest run","gen:vocabulary":"node scripts/gen-vocabulary.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/6f7fb2dbcfc9dce1de0bb238cd3a335b/uniweb-schemas-0.3.4.tgz","_integrity":"sha512-XpxAOqvZB+cBMfgLD2edaMz70wKVgLVGpwzMZgQAoGM9rXwjOrtO3uOHlBN/85hjVJIKKbTJRFsl9AeVcnduBA==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families and site tags","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","@uniweb/content-reader":"1.2.5","@uniweb/semantic-parser":"1.4.1"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.3.4_1790165683901_0.5431026322030972","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@uniweb/schemas","version":"0.4.0","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.4.0","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"801548ca5186c42b00ea09b111e526de31c2e8cc","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.4.0.tgz","fileCount":30,"integrity":"sha512-J7E8SyiTHNculHSCLlJue3jaJU+gJEmZJOW7DTaZo4LC9Ba8vWnJwb3ysg5g0yGUf3ZTdGTXW72u8jjUbFR7Tw==","signatures":[{"sig":"MEQCIE/YyXehMuijQbSp5N8Qgs5awxoxSX1sxaobt6XJCVoIAiBfDlnbo5I4V2Y/hPPLS72+8kPawnQttpPKVwEP0qFnmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBJ+Ch+EpJ/7W+hVUezHmGtv1Vha1T+IYXw7MrbQXqCDAiEAqnQno3zsKMKfB7ucD0t72f1IVf3qwQomse8lO1QTddM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270035},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.4.0.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./content":"./src/content.js","./starter":"./src/starter.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./site-tags":"./src/site-tags.js","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js","./site-tags.json":"./src/site-tags.json"},"scripts":{"test":"vitest run","gen:vocabulary":"node scripts/gen-vocabulary.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/d452b14eec01a96c0130524e5ae1c30d/uniweb-schemas-0.4.0.tgz","_integrity":"sha512-J7E8SyiTHNculHSCLlJue3jaJU+gJEmZJOW7DTaZo4LC9Ba8vWnJwb3ysg5g0yGUf3ZTdGTXW72u8jjUbFR7Tw==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families and site tags","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","@uniweb/content-reader":"1.2.5","@uniweb/semantic-parser":"1.4.1"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.4.0_1790181225087_0.22386783229970275","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@uniweb/schemas","version":"0.5.0","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.5.0","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"0ff4c5a746c7b6e50ffd503b584283897b41a092","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.5.0.tgz","fileCount":30,"integrity":"sha512-QCVKe18nnjjVhpebuBDXROtEGdp4iR6r87bAT/KY34G6Oj+VKf5j0SU7pRzUu9dF4MJrlDDdafhzKzfq1qFqwQ==","signatures":[{"sig":"MEUCIQDVrDtktL8wZOjrL9iM7FHBe+wSocIzGDSO0HCbLpPeHAIgW9377149JJksODOdqxYYkDyCxTLeL1tQSOvyeZa2Pcw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDKSao/jvbu1SiwKqFbUQreQSN9vHXPlvdZQbEd0uHNqwIgOT9pV5O4go1UmcsyciTNtNrGow/y/eZH5HjUrdgxD0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274567},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.5.0.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./content":"./src/content.js","./starter":"./src/starter.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./site-tags":"./src/site-tags.js","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js","./site-tags.json":"./src/site-tags.json"},"scripts":{"test":"vitest run","gen:vocabulary":"node scripts/gen-vocabulary.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/7beac3d27953257a08583ec642bf76a0/uniweb-schemas-0.5.0.tgz","_integrity":"sha512-QCVKe18nnjjVhpebuBDXROtEGdp4iR6r87bAT/KY34G6Oj+VKf5j0SU7pRzUu9dF4MJrlDDdafhzKzfq1qFqwQ==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families and site tags","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","@uniweb/content-reader":"1.2.5","@uniweb/semantic-parser":"1.4.1"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.5.0_1790263836934_0.8016391706365817","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@uniweb/schemas","version":"0.6.0","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.6.0","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"268fce33d826d9336af9463b476aecc5a2762ebb","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.6.0.tgz","fileCount":30,"integrity":"sha512-BMoHeV95sdO9yQnmq3x0YPpy1Q6f7PEr0JjVgz+VP/9zKeoOlwGbuPxAx165CajvMmyMHFAx5nivXcmB993HKA==","signatures":[{"sig":"MEUCIGmk6zSbWkdtVQg/DbQbGm3XnfoSP88KVFdHfsHCXGgoAiEA2oEI40PxsRr2w2kyDF947oa2g9655U9rbT4zmVk4MBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFKg6nvxKkGDqJon4c7w8+kxj+CWCpNuOkh0yUeR928hAiEA+PJcLq1Ei4RUGXVtcjfofzzwcFodPlFUaX0LAyVQm1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274978},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.6.0.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./content":"./src/content.js","./starter":"./src/starter.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./site-tags":"./src/site-tags.js","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js","./site-tags.json":"./src/site-tags.json"},"scripts":{"test":"vitest run","gen:vocabulary":"node scripts/gen-vocabulary.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/289c5a48b21c04c39f2a65c2601d97ae/uniweb-schemas-0.6.0.tgz","_integrity":"sha512-BMoHeV95sdO9yQnmq3x0YPpy1Q6f7PEr0JjVgz+VP/9zKeoOlwGbuPxAx165CajvMmyMHFAx5nivXcmB993HKA==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families and site tags","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","@uniweb/content-reader":"1.2.5","@uniweb/semantic-parser":"1.4.1"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.6.0_1790276642357_0.9638037537388062","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@uniweb/schemas","version":"0.7.0","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.7.0","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"32f105d88ed938357478c9735b1617f01d09ab7c","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.7.0.tgz","fileCount":30,"integrity":"sha512-BD5BehNvH99POHnc4yfowUxDfpqgf2lTbGHgxkY5BRl38Y+dVnr+XmuojZSJ6O446DyyUx9bLFwbydLlOnbhmg==","signatures":[{"sig":"MEQCIA9U1N+HhWWGzMoK6+jpqy0080Oouuxq9pZdKwxT2uw9AiBJQiTV/yY3CIRt7eIt9gDjjroSr3aYe5YjV1W69cZayA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAIYHo9rLRyQBWxOB7wS5oC60jNPdqibVEDqwbILP2B+AiEA3uLZce4xl5sxcs88PIsl2hmzZZrCtu++JACY989R7RA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":290715},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.7.0.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./content":"./src/content.js","./starter":"./src/starter.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./site-tags":"./src/site-tags.js","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js","./site-tags.json":"./src/site-tags.json"},"scripts":{"test":"vitest run","gen:vocabulary":"node scripts/gen-vocabulary.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/s5/rcbxggcn2d33_qj96x9ghk600000gn/T/50067fca31e9824ddd1a2227ad25bde5/uniweb-schemas-0.7.0.tgz","_integrity":"sha512-BD5BehNvH99POHnc4yfowUxDfpqgf2lTbGHgxkY5BRl38Y+dVnr+XmuojZSJ6O446DyyUx9bLFwbydLlOnbhmg==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.7.0","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families and site tags","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","@uniweb/content-reader":"1.2.5","@uniweb/semantic-parser":"1.4.1"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.7.0_1790286814904_0.833401062054584","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@uniweb/schemas","version":"0.7.1","keywords":["uniweb","schemas","content","structured-data"],"author":{"name":"Uniweb"},"license":"Apache-2.0","_id":"@uniweb/schemas@0.7.1","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"homepage":"https://github.com/uniweb/schemas#readme","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"19aaf96bfb0bdca598bd3c9a6390c041a932e718","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.7.1.tgz","fileCount":30,"integrity":"sha512-yuEJX1m+2KivJ1U9XSQv3zbbuc16iN9EwQ/ZjZ46Bv4JhbQQ4m8G+d/kF0Z+i++HfbXA16JBUrEmkvtnwrhhMw==","signatures":[{"sig":"MEUCIAoY5bgaPyNvuZtvf0AeLjRcN5cZ3Vx/jEbjeGlaBdskAiEAohkGDCICUSmkbds6YeK5o9WAXLO7Onuk1SDVEuVHc4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDF9c706+tOONKULpTO7y0MDVzjG6c6gV3ZUQTKM9KyTAiEA2rEvvzq556XEdfm+z+1tjkga/DuYtXOy60DqvK2Qrv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291676},"main":"src/index.js","type":"module","_from":"file:uniweb-schemas-0.7.1.tgz","exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./content":"./src/content.js","./starter":"./src/starter.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./site-tags":"./src/site-tags.js","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js","./site-tags.json":"./src/site-tags.json"},"scripts":{"test":"vitest run","gen:vocabulary":"node scripts/gen-vocabulary.mjs"},"_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/0bc5290f843446fc11eb00e5f1424bae/uniweb-schemas-0.7.1.tgz","_integrity":"sha512-yuEJX1m+2KivJ1U9XSQv3zbbuc16iN9EwQ/ZjZ46Bv4JhbQQ4m8G+d/kF0Z+i++HfbXA16JBUrEmkvtnwrhhMw==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families and site tags","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","@uniweb/content-reader":"1.2.5","@uniweb/semantic-parser":"1.4.1"},"_npmOperationalInternal":{"tmp":"tmp/schemas_0.7.1_1790458310280_0.29782377184195474","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"_id":"@uniweb/schemas@0.7.2","bugs":{"url":"https://github.com/uniweb/schemas/issues"},"dist":{"shasum":"36714a3ea348f51210b9037d3c47adc2c0b12341","tarball":"https://registry.npmjs.org/@uniweb/schemas/-/schemas-0.7.2.tgz","fileCount":30,"integrity":"sha512-MEpIlbG/kMVUB49xzayCXSTtuXu1xEINmY5AO9ECDBkGgi7ALDzSgFT+067N2pLRuraZtEA7MyUdIkobJrf1EA==","signatures":[{"sig":"MEQCIEi9UD8aqKQBG60PZbYQtPSb5les3Pxsq9PP7BeC6gcJAiA94Kr083El1ittH5TVNo6Hx4NyQirK0V8pcJq1BfMN6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGifciWSyy+lsxpxvq6h3rOqcrGo7iNnqhzl9GBKPOttAiAGj9HYovxICxDLVJ0K551UQ5PnVNIc8q58S43Z52XuiA=="}],"unpackedSize":292411},"main":"src/index.js","name":"@uniweb/schemas","type":"module","_from":"file:uniweb-schemas-0.7.2.tgz","author":{"name":"Uniweb"},"exports":{".":"./src/index.js","./format":"./src/format.js","./conform":"./src/conform.js","./content":"./src/content.js","./starter":"./src/starter.js","./utils/*":"./src/utils/*.js","./families":"./src/families.js","./locales/*":"./src/locales/*.json","./site-tags":"./src/site-tags.js","./standard/*":"./src/standard/*.js","./editor-form":"./src/editor-form.js","./families.json":"./src/families.json","./family-aliases":"./src/family-aliases.js","./site-tags.json":"./src/site-tags.json"},"license":"Apache-2.0","scripts":{"test":"vitest run","gen:vocabulary":"node scripts/gen-vocabulary.mjs"},"version":"0.7.2","_npmUser":{"name":"proximify","email":"uniweb@proximify.ca"},"homepage":"https://github.com/uniweb/schemas#readme","keywords":["uniweb","schemas","content","structured-data"],"_resolved":"/private/var/folders/t9/ksv62jsx6jj29p8y6034rzdh0000gn/T/38cf82d8c4936e9deba5b489e652a421/uniweb-schemas-0.7.2.tgz","_integrity":"sha512-MEpIlbG/kMVUB49xzayCXSTtuXu1xEINmY5AO9ECDBkGgi7ALDzSgFT+067N2pLRuraZtEA7MyUdIkobJrf1EA==","repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"_npmVersion":"11.6.2","description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families and site tags","directories":{},"maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","@uniweb/content-reader":"1.2.5","@uniweb/semantic-parser":"1.4.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/schemas_0.7.2_1790478200134_0.7025408099481483"}}},"time":{"created":"2026-01-23T19:14:57.590Z","modified":"2026-09-27T03:03:20.433Z","0.1.0":"2026-01-23T19:14:57.832Z","0.1.1":"2026-01-23T22:01:47.778Z","0.1.2":"2026-01-25T21:44:35.798Z","0.2.0":"2026-02-02T21:21:35.982Z","0.2.1":"2026-02-02T21:23:24.772Z","0.2.2":"2026-06-12T00:10:11.561Z","0.2.3":"2026-06-15T03:29:41.645Z","0.2.4":"2026-07-01T17:02:27.426Z","0.2.5":"2026-07-31T23:10:39.782Z","0.2.6":"2026-08-05T14:30:28.822Z","0.2.7":"2026-08-05T14:46:29.417Z","0.2.8":"2026-08-05T19:38:02.947Z","0.2.9":"2026-08-05T19:48:24.006Z","0.2.10":"2026-08-05T20:53:10.903Z","0.2.11":"2026-08-27T04:56:39.331Z","0.2.12":"2026-09-01T22:08:09.795Z","0.2.13":"2026-09-02T02:47:28.507Z","0.2.14":"2026-09-16T03:39:12.051Z","0.2.15":"2026-09-16T04:57:07.642Z","0.3.0":"2026-09-16T12:40:33.758Z","0.3.1":"2026-09-16T20:36:08.926Z","0.3.2":"2026-09-17T03:25:06.608Z","0.3.3":"2026-09-17T03:55:58.364Z","0.3.4":"2026-09-23T12:14:43.984Z","0.4.0":"2026-09-23T16:33:45.230Z","0.5.0":"2026-09-24T15:30:37.031Z","0.6.0":"2026-09-24T19:04:02.468Z","0.7.0":"2026-09-24T21:53:35.011Z","0.7.1":"2026-09-26T21:31:50.364Z","0.7.2":"2026-09-27T03:03:20.232Z"},"bugs":{"url":"https://github.com/uniweb/schemas/issues"},"author":{"name":"Uniweb"},"license":"Apache-2.0","homepage":"https://github.com/uniweb/schemas#readme","keywords":["uniweb","schemas","content","structured-data"],"repository":{"url":"git+https://github.com/uniweb/schemas.git","type":"git"},"description":"The Uniweb data-schema format, its standard schema definitions, and the standard section families and site tags","maintainers":[{"name":"wengtytt","email":"tianyu@proximify.ca"},{"name":"proximify","email":"uniweb@proximify.ca"}],"readme":"# @uniweb/schemas\n\nUniweb's standard names, and the language they're written in. Six things, and it helps to know which one you're reaching for:\n\n- **The data-schema format** — the language schemas are written in: its type vocabulary, the normalizer that folds friendly type names to canonical kinds, and the conformance checker that validates a record against a schema.\n- **The standard schemas** — a shared vocabulary of common content types (`person`, `article`, `event`, …) written in that format, referenced as `@std/<name>`.\n- **The section families** — the standard section types a component can claim with `family:` in its `meta.js`, so an editor can show the right illustration and a label it can translate. [Section families](#section-families).\n- **The site tags** — the standard words for what a site is for, declared with `tags:` in `site.yml`, so a list of sites can be filtered and labelled the same way everywhere. [Site tags](#site-tags).\n- **The content declaration** — a reader for the `content:` block a section type writes, so a tool can show what a component expects without learning the grammar. [The content declaration](#the-content-declaration).\n- **Starter content** — a component's `content:` declaration turned into something an author can edit instead of an empty box. [Starter content](#starter-content).\n\nA data schema describes a structured content type: its fields, their types, their defaults. Write the shape once and it does three jobs — `uniweb validate` **checks** your data before it ships, the runtime **delivers** each record with defaults applied, and the visual editor renders a **form** authors fill in.\n\n```bash\npnpm add @uniweb/schemas\n```\n\nAdd it wherever a `@std/<name>` ref is used. Foundations that only use `@/`-refs (their own schema files) or inline schemas don't need it.\n\n---\n\n## Binding a schema\n\nA foundation component declares its structured-data shape with a single `data:` key in `meta.js`. Each entry maps a `content.data` key to a schema:\n\n```js\n// foundation/sections/TeamGrid/meta.js\nexport default {\n  title: 'Team Grid',\n\n  data: {\n    team:    '@/member',                                  // named ref (this foundation)\n    authors: '@std/person',                               // named ref (shared standard)\n    specs:   { cpu: { type: 'string', default: '' } },    // inline field map\n    signup:  { fields: [{ id: 'email', type: 'text' }] }, // inline rich-form (editor form)\n  },\n}\n```\n\n- The **key** (`team`) is the `content.data` key — where the data lands and where the schema's defaults are applied. The site, author, or editor decides *how* that key gets filled (a fetched collection, a tagged code block, an editor form); the schema is the same regardless of source.\n- The **value** is a **named ref**, an **inline field map**, or an **inline rich-form** (distinguished by a `fields` **array** rather than a keyed object — it drives the editor's form UI).\n\nA `data:` declaration is a hint, **not a delivery gate**: delivery is default-on, so a component receives `content.data` whether or not it declares `data:`. A component that should receive no ambient data declares `data: false`.\n\nThere is no separate `schemas:` key, no `entity:` field, and no `inheritData` — all folded into this one `data:` surface.\n\n---\n\n## Three namespaces\n\nA ref names a **namespace, never a package path**:\n\n| Ref | Namespace | Resolves to |\n|---|---|---|\n| `@/member` | **self** — this foundation | `foundation/schemas/member.{js,json,yml,yaml}` |\n| `@std/person` | **shared standards** | the matching standard in this package |\n| `@acme/event` | **an org** | that org's `@acme/schemas` package (a workspace package locally; a registry scope once published) |\n\nThe empty scope in `@/member` means \"this foundation.\" Because an org scope is assigned only at publish time, a foundation **never writes its own org name in source** — `@/`-refs are portable and travel with the foundation, and the build resolves them to a real org scope when published.\n\n`@uniweb` is reserved for the platform system namespace and is **not** a data-schema source — use `@std` for shared standards.\n\nRefs resolve **on disk at build time**. Nothing is fetched.\n\n### Routing a scope elsewhere — `schemas.config.js`\n\nA foundation can point a scope at a plain folder of schema files, or override a single schema to an exact file — no package, no install:\n\n```js\n// <foundation>/schemas.config.js\nexport default {\n  '@agency':        '../shared/agency-schemas',    // scope  → a directory\n  '@agency/person': './schemas/agency-person.yml', // schema → an exact file\n  '@brand':         process.env.BRAND_SCHEMAS,     // machine-specific, via env\n}\n```\n\nMost specific wins: **file › directory › package**. Relative paths resolve against the foundation source dir; a key whose value is null/undefined (an unset env var) is skipped and falls through to the next source. A routed scope does **not** fall back to the `@org/schemas` package — failing loudly beats silently loading a different definition. `@/` and `@uniweb` are never routable.\n\n---\n\n## Writing a schema\n\nA schema file lives in your foundation's `schemas/` folder and may be `.js`, `.json`, `.yml`, or `.yaml`. It declares **either** `fields:` (one flat record — the common case) **or** `sections:` (a structured type), never both.\n\n```yaml\n# foundation/schemas/member.yml   — referenced as '@/member'\nname: member\nversion: 1.0.0\ndescription: A research group member\nfields:\n  name:       { type: string, required: true }\n  role:       { type: string, default: '' }\n  rank:       { type: string, enum: [assistant, associate, full] }\n  tenured:    { type: boolean, default: false }\n  start_year: { type: number }\n```\n\n`name` and `version` are the schema's **identity** — which named schema at which version a foundation depends on. They are not `content.data` keys; the `content.data` key is whatever the section's `data:` binding names it.\n\n| Schema key | Meaning |\n|---|---|\n| `name` | Schema identity (short name) |\n| `version` | Schema version |\n| `description` | Human-readable description |\n| `fields` | A flat record's fields — **xor** `sections` |\n| `sections` | Named sections of a structured type — **xor** `fields` |\n| `sort_date` | Names a **date field** records sort by (see [The sort axis](#the-sort-axis)). `sortDate` is an accepted alias |\n\n### Field types\n\nThe friendly type you write folds to a small set of **canonical kinds**. Write the word that fits the content — or write the canonical kind directly; both work.\n\n| You write | Canonical kind | Holds |\n|---|---|---|\n| `string` | `string` | A short, single-line value |\n| `text` | `text` | Long-form text |\n| `number` | `decimal` | A number |\n| `integer` | `int` | A whole number |\n| `boolean` | `bool` | `true` / `false` |\n| `date` / `datetime` | `date` / `datetime` | An ISO-8601 date / timestamp |\n| `image` | `file` | A path or URL to a file |\n| `url` / `email` | `string` + `format` | A validated string |\n| `markdown` / `html` | `text` + `format` | A rich-content body (a source string) |\n| `richtext` | `json` + `format: prosemirror` | A rich document edited in the visual app |\n| `json` | `json` | An opaque structured value |\n| `object`, `group` | `object` | A nested record — declare `fields:` or `values:`. `group` is the author-facing spelling |\n| `array` | `array` | A list — declare `items:` (or just use `many:`). Without `items:` the element type is genuinely unknown, and a registered schema records it as opaque `json` rather than guessing |\n| `ref` | `ref` | A reference to another schema — `{ ref: '@/person' }` |\n\nA bare type string is shorthand for `{ type: … }`: `title: string` is `title: { type: string }`.\n\n### Lists — `many: true`\n\nAny field or section becomes a list by adding `many: true`. This is the idiom to reach for; `array` + `items` is the lower-level form it normalizes to.\n\n```yaml\nfields:\n  tags:    { type: string, many: true }          # a list of strings\n  courses: { ref: '@/course', many: true }       # a list of references\n  results:                                       # a list of records\n    type: object\n    many: true\n    fields:\n      metric: { type: string }\n      value:  { type: string }\n```\n\nCollection-level metadata (`required`, `default`, `label`, `help`, `description`) rides on the **list**; the type-bearing keys (`type`, `ref`, `options`, `enum`, `fields`, `items`, `format`) describe **each item**.\n\n> **One limit worth knowing about `required`.** It is enforced on a list of *values* — `{ type: string, many: true, required: true }` — and on a list of references. It is **not** enforced on a list of *records*, or on a nested `object`: those become sections when the schema is registered, and `required` binds the record that is *written* — it cannot force a record to *exist*. Put the flag on a field *inside* the record, where it holds, and reach for `min_items` below when you mean \"don't let this become empty\".\n\n### Nested records and open maps\n\nAn `object` field describes its shape one of two ways, and they answer different questions:\n\n```yaml\nfields:\n  address:                          # KNOWN keys\n    type: object\n    fields:\n      street: { type: string }\n      city:   { type: string }\n\n  controls:                         # an OPEN MAP — keys belong to the author\n    type: object\n    values:\n      type: object\n      fields:\n        type:  { type: string, required: true }\n        label: { type: string }\n```\n\n- **`fields:`** — the object's known keys.\n- **`values:`** — a map whose keys are the author's and whose values all conform to one shape. `values` is to an object what `items` is to an array.\n\nDeclaring both is an error. Reach for `values:` whenever the keys are the author's rather than yours — a set of per-region overrides, a bag of feature flags, anything a `fields:` list could not enumerate because the names do not exist until someone writes them. No standard schema uses it today (`@std/form` did until it became a list of controls), so it is a construct waiting for the shape rather than a description of one.\n\n### References and picklists\n\n```yaml\nfields:\n  author:  { ref: '@/person' }                                   # a reference\n  status:  { type: string, enum: [draft, published, archived] }  # inline choices\n  country: { type: string, options: '@/countries' }              # curated, shared\n```\n\n- **`ref:`** — a reference to another schema. `type: ref` is inferred, so `{ ref: '@/person' }` is enough.\n- **`enum:`** — an **inline** list of allowed values. Best for a short, fixed set that belongs to the type.\n- **`options:`** — a **`@/<name>` ref** to a curated options schema. Best when the choices are a managed list reused across fields.\n\nAn inline array always belongs on `enum:`; `options:` always takes a ref.\n\n### Rich content — `format`\n\n`format` marks a field as carrying rich content, and it is **type-bound** — a mismatch is rejected when the schema is read:\n\n| `format` | Valid on | Use it for |\n|---|---|---|\n| `markdown` | `text` | A markdown body that round-trips as plain source |\n| `html` | `text` | An HTML body |\n| `prosemirror` | `json` | A rich document edited through a structured editor |\n| `scene` | `json` | A visual scene composition (rendered by `@uniweb/scene`) |\n| `email`, `url` | `string` | Value validation, not rich content |\n\nThe friendly aliases set these for you: `type: markdown` is exactly `type: text, format: markdown`, and `type: richtext` is exactly `type: json, format: prosemirror`.\n\n**Use `richtext` for a rich body edited in the visual app** — it's the editor's native, lossless document. Use `markdown` / `html` for a **source body** authored as text (file-based projects, or content you want readable as raw source). Don't reach for `markdown` just because it's the familiar word.\n\n### Translatable fields\n\nText and rich-content fields are **translatable by default** — one value per locale. Set `translatable: false` to opt out: an ID, a slug, a machine token that's identical in every language.\n\n```yaml\nfields:\n  title: { type: string }                        # translatable by default\n  body:  { type: markdown }                      # translatable by default\n  sku:   { type: string, translatable: false }   # one value across all locales\n  tags:  { type: string, many: true, translatable: false }   # a grouping key\n```\n\n⚠️ **A human-readable string can still be the wrong thing to translate.** The opt-out is not only\nfor opaque tokens — it is for any value that is **compared** rather than read: tags, keywords,\ncategories, technology names. Those look like prose and are not, and the default is exactly wrong\nfor them.\n\nTranslating a grouping key **forks the vocabulary**: the `en` and `es` sides of one site end up\nfiltering on different values, and *\"everything tagged `research`\"* stops being a single query.\nWorse, a `many` field that is translatable is an array of *per-language objects* — so a list authored\nas `[\"design\", \"craft\"]` is not merely untranslated, it is **invalid**, and a locale with no\ntranslation renders **no tags at all** rather than the original ones.\n\n⇒ Ask **\"would two locales ever need different values here, or the same value shown differently?\"**\nThe second is a canonical key plus a localized label — two fields, not one translatable field.\n(`@std`'s `tags`, `keywords` and `technologies` are all `translatable: false` for this reason.)\n\nFields constrained by `enum:`, and strings carrying a value-validator `format` (`email` / `url`), are treated as machine values and are not translated. A *content* format (`markdown` / `html` / `prosemirror`) still translates.\n\n### Field options\n\n| Option | Type | Description |\n|---|---|---|\n| `type` | string | The field type (required, unless inferred from `ref:` or `options:`) |\n| `many` | boolean | Make it a list; the other keys describe each item |\n| `required` | boolean | The field must have a value |\n| `default` | any | Value used when none is supplied |\n| `label` | string | Short human-readable name (editor UI) |\n| `description` | string | Human-readable description |\n| `help` | string | Additional guidance (editor UI) |\n| `format` | string | Content or validation format — see [Rich content](#rich-content--format) |\n| `enum` | array | Inline list of allowed values |\n| `options` | string | A `@/<name>` ref to a curated options schema |\n| `translatable` | boolean | Set `false` to opt a text field out of localization |\n| `fields` | object | Nested fields — `object` type |\n| `values` | object | Value shape of an open map — `object` type |\n| `items` | object | Item definition — `array` type (or use `many:`) |\n| `ref` | string | Target schema — `ref` type |\n| `constraints` | array | Rules for the section this field becomes — `object` and `many`-of-`object` only (see below) |\n| `tree` | boolean | The records nest under each other — a `many`-of-`object` field only |\n| `append_only` | boolean | The records are insert-only — a `many`-of-`object` field only |\n\n`tree` and `append_only` describe how a *list of records* behaves, so they need one: a `many: true` field whose items are objects, or a `many: true` section. On a single object or a list of plain values they're rejected rather than ignored — they'd be stating something that can't be true. Both are documented under [Structured types](#structured-types--sections), and mean the same thing wherever you declare them.\n\n### Constraints\n\nA nested record and a list of records become **sections** when a schema is registered, and a section can carry rules a single field can't express. Declare them with `constraints:` — on the section in the `sections:` form, or on the field itself:\n\n```yaml\nfields:\n  authors:\n    type: object\n    many: true\n    constraints:\n      - { kind: min_items, value: 1 }\n    fields:\n      name: { type: string, required: true }\n```\n\n`min_items` is the common one, and it is worth reading precisely:\n\n- **It is a delete floor, not a fill requirement.** It refuses a delete that would take the section below N. It does *not* force an author to populate the section in the first place.\n- **It is a write guarantee, never a render guarantee.** Your component still handles an empty list — the same schema can be rendered by a foundation that never saw the constraint, so content and code stay independent.\n\nConstraints on a plain leaf field are ignored: a leaf narrows with `enum` and `format` instead. They take effect once the schema is registered; for file-based collections there is no write step.\n\n---\n\n## Structured types — `sections:`\n\nWhen a single flat record genuinely can't express the content, declare named `sections:` instead of `fields:`. Each section is one record by default, or a repeating list with `many: true`.\n\n```yaml\n# foundation/schemas/handbook.yml\nname: handbook\nsections:\n  identity:\n    brief: true                    # the card shown when this type is referenced\n    fields:\n      title: { type: string, required: true }\n  chapters:\n    many: true                     # a repeating list of records\n    tree: true                     # …that can nest under each other\n    fields:\n      title: { type: string }\n      body:  richtext\n```\n\nThe flat `fields:` form is the common case. Reach for `sections:` only when you need one of the capabilities below.\n\n| Section key | Meaning |\n|---|---|\n| `fields` | The section's fields |\n| `sections` | Child sections (a section carrying only these is a grouping container) |\n| `brief` | This section is the card a reference to this type hydrates into. **Optional** — at most one per schema, and it must be a single record (not `many`). Without one the type simply isn't referenceable; see [A schema whose root is a list](#a-schema-whose-root-is-a-list) |\n| `many` | A repeating list of records rather than one |\n| `tree` | A `many` section whose records nest **under each other**. `nestable` is the lower-level spelling |\n| `append_only` | A `many` section whose records are insert-only — added, never edited or deleted |\n| `constraints` | Cross-cutting write rules for the section |\n| `label`, `description` | Display prose for the section itself. Plain strings — translations live in `locales/`, never as an inline `{ en: … }` object |\n\n### The brief\n\nThe **brief** is the section that represents the whole record when something references it — the card. At most one section may be marked `brief: true`, and it must be a single record. A schema with no brief is not referenceable as a target (there's no card to show), which is fine for types that are pure lists — `@std/nav` is exactly that.\n\n### A schema whose root is a list\n\nSome content isn't a record with parts — it *is* a list. A navigation menu is a list of items; a form is a list of controls. Declare that as **one `many: true` section and nothing else**:\n\n```yaml\n# @std/nav, in full\nname: nav\nsections:\n  items:\n    many: true\n    tree: true\n    fields:\n      label: { type: string, required: true }\n      href:  { type: string, translatable: false }\n```\n\nA block's content is then a bare list, with no wrapping key:\n\n````markdown\n```yaml:nav\n- label: Home\n  href: /\n- label: Docs\n  href: /docs\n```\n````\n\nTwo consequences worth knowing:\n\n- **No brief, and that's correct.** There's no single record to be the card, so the schema isn't referenceable as an `entity_ref` target. `uniweb validate` and the runtime treat this as a normal shape, not a missing one.\n- **Exactly one section.** Two `many` sections and no single one would leave \"which one is the value?\" unanswerable, so it isn't treated as a root list — nothing would be checked.\n\nEverything else works the same: `validate` checks each record and names its index (`[1].label`), and `applyDefaults` fills each entry's defaults.\n\nA **record file** holding one such list — a record kept in `records/` — writes it under the section's key (`items:`), since a file whose top level is a list holds several records. `uniweb validate` checks it, and a push sends it.\n\n### Tree sections\n\n`tree: true` lets a `many` section's records nest under one another — a chapter tree, a category hierarchy, a threaded discussion. **There is no field to declare** for the parent/child link and no ID to wire up.\n\nThis is what separates `tree:` from child `sections:`. A child section nests one *named* section inside another — a fixed shape you spell out. `tree:` lets records of a **single** section nest under one another, so the shape is decided by the author as they write.\n\nAuthors nest records under a reserved **`children:`** key — the schema declares only one record's fields, and `children` holds more of the same:\n\n```yaml\n- label: Products\n  href: /products\n  children:\n    - label: Widgets\n      href: /products/widgets\n```\n\nYou never declare `children`; declaring `tree: true` is what makes it meaningful. `uniweb validate` descends into it to any depth and names the full path — `[1].children[0].label` — so a deep entry is findable in a large tree.\n\n`tree:` is only valid on a `many: true` section — but \"section\" includes a **nested** one, and a list of records authored as a *field* (`chapters: { type: object, many: true, tree: true }`) works the same way.\n\n### Append-only sections\n\n`append_only: true` marks a `many` section insert-only: records may be added, but never edited or deleted. Because the rule lives in the content type rather than in a form, it holds for every writer — which makes such a section **tamper-evident**. Reach for it for activity logs, submissions, and audit trails.\n\n`append_only:` is only valid on a `many: true` section, and takes effect once the schema is registered (file-based collections have no write step).\n\n### The sort axis\n\n`sort_date` is a **schema-level** key naming a **date field** — the axis a feed, an archive, or a \"latest first\" listing orders on:\n\n```yaml\nname: post\nsort_date: published_on          # names a date field below\nfields:\n  title:        { type: string, required: true }\n  published_on: { type: date }\n```\n\nIts value is a field *name*, not `true`/`false`, and it doesn't go on the field itself. With the `sections:` form, name a field in the **brief** section; a schema with no brief has no sort axis. (`sortDate` is an accepted alias.)\n\n### How a source file maps onto sections\n\nSections are namespaces: each groups its own fields, and two sections may declare fields with the same name.\n\nA record file — a `.md` with frontmatter, a `.yml`, one `.json` object — is written in one of two layouts, decided by the schema:\n\n- **Flat** — a schema with one section (the `fields:` form, or `sections:` with a single one that is not a list): the record's keys are that section's fields.\n- **By section** — any other schema: each top-level section under its own name, an object for a single section and a list of records for a `many` one. A field written at the top of such a record is the flat form, which it does not have; a check reports it (the rule `section`), naming the section it belongs in.\n\n```yaml\n# a record of @std/article, by section\narticle:\n  title: Hello\n  date: 2026-05-01\narticle_body:\n  author: Ada\n```\n\nA markdown body is the value of the schema's content field — a markup `text` field or a `richtext` one — in whichever single section declares it: `article_body.content` for `@std/article`.\n\n**What a component receives is a third shape:** the brief's fields at the top, every other section under its own name. `@std/article` keeps its card (`article`) apart from its body (`article_body`) so a reference and a list carry the card without the body.\n\n```js\n// the same record, as a component receives it\n{ title: 'Hello', date: '2026-05-01', article_body: { author: 'Ada', content: { type: 'doc', … } } }\n```\n\n---\n\n## The standard schemas\n\n| Schema | Ref | Description |\n|---|---|---|\n| `person` | `@std/person` | Team members, authors, contacts |\n| `article` | `@std/article` | Blog posts, news items, documentation |\n| `event` | `@std/event` | Calendar events, conferences, webinars |\n| `project` | `@std/project` | Portfolio items, case studies |\n| `opportunity` | `@std/opportunity` | Jobs, grants, calls for proposals |\n| `publication` | `@std/publication` | Academic papers, research documents |\n| `nav` | `@std/nav` | Navigation menus (a nestable list) |\n| `scene` | `@std/scene` | Visual scene composition (rendered by `@uniweb/scene`) |\n| `form` | `@std/form` | A form **designed by an author** — a list of the controls a visitor will be asked to fill |\n\nReach for one of these before inventing your own, the same way you'd pull a well-known type off the shelf.\n\n> **`@std/form` describes a form *definition*, not a *submission*.** A component that renders an authored form is the inverse of every other component: it doesn't declare the fields, it *receives* them and draws whatever it's given. So it can't declare the author's control names — it declares `data: { form: '@std/form' }`, which asks the only answerable question: *is this a well-formed form?* The block carries the controls and nothing else; a form's heading and intro are the section's own markdown. What a visitor actually answers arrives at runtime and is not knowable when the foundation is written.\n\n---\n\n## How bound data arrives\n\nA `data:` binding describes the shape of *each item*. The runtime delivers a bound collection key as an **array**, always:\n\n- A list page receives the full collection.\n- A dynamic `[slug]` detail page receives a **single-element array** — the route-matched record — under the same collection key. A detail section reads `content.data.<key>[0]`.\n- A detail page where nothing matches receives an empty array `[]`.\n\nThe runtime never coerces an array to a single object and never synthesizes a separate singular key. Reshaping a collection to a single record is the foundation's job — read `[0]`, or reshape `content.data` once via a foundation `handlers.data` hook.\n\n---\n\n## What gets published\n\nWhen a foundation is built, every distinct ref across all section bindings is resolved and loaded into its canonical form — `{ name, version, description?, fields }` for a flat schema, or `{ name, version, description?, sections }` for a structured one — and emitted into the foundation's published metadata under a top-level `dataSchemas` map keyed by the ref. A consumer of that metadata has every data schema inline and versioned, with no refs left to resolve.\n\nThe lean runtime entry carries only what the runtime needs to apply defaults and shape data — `type`, `default`, `enum`, `options`, and nested `fields`/`items`. Descriptions, labels, and other editor hints stay in the full schema.\n\n---\n\n## Programmatic API\n\nThe format itself is exported, so tooling can read a schema the same way the framework does. `@uniweb/build` re-exports these, so `uniweb validate` and this package run **one** implementation.\n\n```js\n// Standard schema objects (tree-shakeable)\nimport { person, article, event } from '@uniweb/schemas'\n\n// …or look them up by name\nimport { schemas, getSchema, getSchemaNames, isStandardSchema } from '@uniweb/schemas'\n\n// Validate a record against a schema (name or object)\nimport { validate } from '@uniweb/schemas'\nconst { valid, errors } = validate(data, 'person')\n// errors: [{ path: 'email', rule: 'format', message: '\"x\" is not a valid email' }]\n\n// Apply a schema's defaults\nimport { applyDefaults, getDefaults } from '@uniweb/schemas'\nconst filled = applyDefaults(data, person)\nconst blanks = getDefaults('person')\n```\n\n`validate` and `applyDefaults` accept a schema **as authored** — the friendly vocabulary (`many:`, `number`, `richtext`, `{ ref: '@/x' }`) and both schema forms are normalized first. They take a record in the shape a component receives it — the brief's fields at the top, each other section under its name ([How a source file maps onto sections](#how-a-source-file-maps-onto-sections)) — and `applyDefaults` fills a section only when the record holds it.\n\nThey **throw** when the *schema* is malformed — a bad schema is a programming error, and the message names the offending field. Invalid *data* comes back as findings.\n\nLower-level entry points, for tooling that needs the format directly:\n\n```js\nimport { validateAndNormalizeSchema, parseSchemaRef, collectNestedRefs } from '@uniweb/schemas/format'\nimport { validateItem, validateRecordFile, recordLayout, toDeliveredRecord } from '@uniweb/schemas/conform'\n```\n\n| Export | Does |\n|---|---|\n| `validateAndNormalizeSchema(schema, ref)` | Validates the authoring format and returns the normalized schema (friendly aliases folded to canonical kinds). Throws, naming the offending field |\n| `parseSchemaRef(ref)` | `'@std/person'` → `{ scope: 'std', name: 'person' }` |\n| `collectNestedRefs(schema)` | Every `ref`/`options` target a normalized schema depends on |\n| `validateItem(schema, item)` | Findings for one **record** as a component receives it, against a normalized schema |\n| `isStaticallyCheckable(schema)` | Whether a record of the schema can be checked at all — true for any schema that declares fields or sections |\n| `validateRecordFile(schema, record)` | Findings for one record as its **file** holds it — flat or by section — including a field written flat where the schema is written by section |\n| `recordLayout(schema)` | How a record of the schema is laid out: `{ flat, sections, brief }` |\n| `toDeliveredRecord(schema, record)` | A record as its file holds it → as a component receives it |\n| `deliveredFields(schema)` | The field map of a record as a component receives it |\n| `contentBodyField(schema)` | Where a markdown body goes — in the record a component receives, and in its file |\n| `misplacedFields(schema, record)` | The keys of a record file written flat where the schema is written by section, with the section each belongs under |\n| `referencesOf(schema, record, { delivered })` | Every reference a record holds, with its path, the schema it points at and the value written there — in its file, or as delivered |\n| `mapReferences(schema, record, fn, { delivered })` | The record with each reference replaced by `fn(value, { path, ref })` |\n| `validateBound(schema, value)` | Findings for a whole bound **value** — a record or a list. Dispatches on the schema's root shape and descends into a `tree`'s children |\n| `rootListSection(schema)` | The section whose records *are* the value, when the root is a list |\n| `AUTHORING_TYPES` | Every word valid as a `type:` — derived from the vocabulary, so it never drifts |\n| `SCALAR_KINDS`, `FORMAT_TYPES`, … | The type vocabulary |\n\nThese are utilities for tooling — none is required to use a schema in a foundation. There you reference a schema by its namespace ref in `meta.js` and the build does the resolution and default application for you.\n\n---\n\n## See also\n\n- **Data Schemas** — the authoring guide, with worked examples: `development/data-schemas.md`\n- **Designing Data Schemas** — modeling decisions across related types: `development/designing-data-schemas.md`\n- **Schemas in Practice** — where a schema file lives, and how a second project consumes it: `development/schemas-in-practice.md`\n- **Component Metadata** — the full `data:` binding reference: `reference/component-metadata.md`\n\nFull documentation index: <https://www.uniweb.io/llms.txt>\n\n## License\n\nApache 2.0\n\n---\n\n## Section families\n\nA section type can say **what it is** with one optional key:\n\n```js\nexport default { title: 'Researcher Profile', family: 'profile' }\n```\n\n`family` is one of 67 standard ids, grouped into 8 for a picker. Most components declare nothing, because the section type *is* the component name — `Hero`, `Footer`, `Pricing`, `FAQ` resolve from the name alone.\n\n```js\nimport { resolveFamily, FAMILIES, GROUPS } from '@uniweb/schemas/families'\n\nresolveFamily(component)   // → { id, label, group, source, unknown }\n```\n\n`@uniweb/schemas/families.json` is the same data as JSON. English and French labels are at `@uniweb/schemas/locales/en` and `/fr`, keyed by id, never by label (`family.<id>.label`, `group.<id>.label`, `group.<id>.description`).\n\n⛔ Nothing in the build, the runtime or a delivered site reads `family`. It is a claim about **shape** — never about entitlement, tier or capability — and a component that declares none renders identically. An unrecognized value is legal: it falls back rather than failing.\n\n---\n\n## Site tags\n\nA site says **what it is for** with standard tags in `site.yml`:\n\n```yaml\ntags: [blog, personal]\n```\n\nApps use them to filter and label a list of sites, such as a template picker. The standard tags:\n\n`business` · `landing-page` · `portfolio` · `personal` · `resume` · `blog` · `store` · `documentation` · `event` · `publication` · `community` · `technology` · `academic` · `research` · `education` · `nonprofit` · `local-business` · `professional-services` · `health` · `food` · `real-estate` · `arts` · `photography` · `music` · `travel`\n\n```js\nimport { resolveSiteTags, SITE_TAGS } from '@uniweb/schemas/site-tags'\n\nresolveSiteTags(['blog', 'landingpage'])\n// → { tags: [{ id: 'blog', label: 'Blog' }], unknown: ['landingpage'] }\n```\n\n`@uniweb/schemas/site-tags.json` is the same list as JSON. The labels are in the same locale files as the families, as `site-tag.<id>.label`.\n\n⛔ A tag says what a site is **for**, never what it can do: there is no `multilingual` or `searchable` tag. The list only grows — an id, once shipped, is never renamed or removed — and a tag that is not on it is legal: it stays on the site and simply has no standard label.\n\n---\n\n## The content declaration\n\nA section type says what content it expects:\n\n```js\ncontent: {\n  title:      'Headline',\n  paragraphs: 'Short pitch [0-1]',\n  items:      { label: 'Feature cards [3-6]', hint: 'Each H3 becomes a card' },\n}\n```\n\nThat's a small grammar — an element vocabulary, a count in brackets, two ways to write a value, and names whose singular declares what their plural delivers. `describeContent` reads it so a consumer doesn't have to:\n\n```js\nimport { describeContent } from '@uniweb/schemas/content'\n\nconst { elements, unknown, declared, summary } = describeContent(component)\n```\n\nEach element comes back with what a UI needs to draw it:\n\n```js\n{\n  key: 'items',            // what the component reads off `content`\n  declaredAs: 'items',     // what the developer wrote\n  label: 'Feature cards',\n  labelSource: 'declared', // 'standard' when the label is ours, not theirs\n  hint: 'Each H3 becomes a card',\n  kind: 'entries',         // one of CONTENT_KINDS\n  syntax: '# Section title\\n\\n### First entry\\n…',\n  description: 'Repeated groups within one file — a heading starts each one. …',\n  arity: { min: 3, max: 6, required: true, repeatable: true, text: '3–6' },\n}\n```\n\n- **`kind`** is a closed set — `heading` · `prose` · `list` · `link` · `image` · `icon` · `video` · `entries` · `code` · `data` · `inset`, published as `CONTENT_KINDS`.\n- **`syntax`** is a markdown sample that actually produces the element. A test asserts exactly that for every one of them, because a sample that doesn't parse is worse than none — it's copy-pasteable and it fails silently.\n- ⛔ **`labelSource` decides whether you may translate the label.** A declared label is the foundation's own words, in whatever language the developer chose; show it verbatim. A `'standard'` one is ours.\n- **`unknown`** names anything `content:` declared that isn't an element, with a reason. `background` gets its own — it's a real `meta.js` key, just a top-level one, so calling it a typo would hide that there's a correct place for it.\n- **`declared: false`** means the component declares no `content:` at all. That's supported and common, never an error.\n\nNothing throws. A foundation is third-party, and one odd key shouldn't cost a section its panel.\n\n---\n\n## Starter content\n\nWhat an author should find in a new section, derived from what the component says it expects.\n\n```js\nimport { starterContent } from '@uniweb/schemas/starter'\n\nconst { params, content, family, unfilled, elementsInferred } = starterContent(component)\n```\n\n`component` is a foundation schema entry — the same argument `resolveFamily` takes. `content` is the flat content structure and `params` is the frontmatter. Serializing is one call in a package you already have, which is what keeps this one dependency-free:\n\n```js\nimport { buildDoc } from '@uniweb/semantic-parser'        // → ProseMirror, for an editor\nimport { serializeSection } from '@uniweb/content-writer'  // → markdown, for a file\n\nconst doc = buildDoc(content)\nconst md = serializeSection(params, doc)\n```\n\n`uniweb add section <Name> --starter` is the same thing from the command line.\n\n### What it reads\n\n| from `meta.js` | what it decides |\n|---|---|\n| `content:` | which elements to fill, and **how many** — the count syntax (`[3-6]`, `[2+]`) is read here |\n| `family:` | the register the copy comes from — a `team` gets people, a `pricing` gets tiers |\n| `params:` / `presets:` | the frontmatter. `{ preset: 'split' }` uses that preset's params instead of the defaults |\n| `data:` | a tagged block per key, sampled from its schema — **only** when `content:` declares `data` |\n\n`content: { data: … }` is the discriminator, because `data:` declares the keys a component *receives* and a key is filled either by a fetch the site declares or by a block the author writes. Nothing else in `meta.js` separates them.\n\n### Rules worth knowing\n\n- **The upper bound is what gets generated.** A component need not render everything it is handed, and the params that reduce simply render less — so surplus is free while a shortfall leaves a hole. `[0-2]` gives 2; a floor of 0 still gives one.\n- **A component that declares no `content:`** gets its family's canonical elements, and `elementsInferred` says so.\n- **Nothing is repeated** to reach a count. Duplicated filler reads as a bug, not a placeholder.\n- **Placeholder images are self-contained SVG data URIs.** No host is invented. Pass `{ assets: [{ url, alt }] }` to supply real ones.\n- **`unfilled`** names declared elements this cannot fill, so a caller can say so rather than silently omit them.\n\n### It is derived, never authored\n\nThere is no `starter:` key in `meta.js`, deliberately. Authored sample copy drifts against the declaration it is meant to match, and it can never be localized — a developer's string is the foundation's own words and is shown verbatim in every UI language. Deriving the copy makes it framework's, which is the one category that can carry a locale file.\n","readmeFilename":"README.md"}