{"schemaVersion":"1.0","generatedAt":"2026-09-22","steps":[{"step":"Download the offline checker and compare its SHA-256 with the published value.","command":"shasum -a 256 smellbook-check-heritage.mjs"},{"step":"Run it on a worked example: it must say VALID.","command":"node smellbook-check-heritage.mjs smellbook-worked-0001.json"},{"step":"Run it on a broken file: it must say INVALID and name the problem listed here.","command":"node smellbook-check-heritage.mjs broken-record-number.json"},{"step":"Download the collection tool and turn the LIDO example into a draft record: it must say what is still missing.","command":"node smellbook-collection-tools.mjs import example-lido.xml"},{"step":"Export a valid record as the statements to add to your own catalogue.","command":"node smellbook-collection-tools.mjs export smellbook-worked-0001.json --format lido"}],"cases":[{"file":"smellbook-worked-0001.json","path":"/data/test-kit/smellbook-worked-0001.json","label":"Worked example: Garlic and oil as a local scent of Spanish cooking in an 1858 travel essay","expect":{"valid":true,"problems":[]}},{"file":"smellbook-worked-0002.json","path":"/data/test-kit/smellbook-worked-0002.json","label":"Worked example: Incense outside Valencia Cathedral in a 1901 novel","expect":{"valid":true,"problems":[]}},{"file":"smellbook-worked-0003.json","path":"/data/test-kit/smellbook-worked-0003.json","label":"Worked example: Volatile compounds of artisan bread from bakeries in Valencia","expect":{"valid":true,"problems":[]}},{"file":"example-obj-0001.json","path":"/data/test-kit/example-obj-0001.json","label":"Illustrative record: Smell of a wooden spice box (illustrative example)","expect":{"valid":true,"problems":[]}},{"file":"example-pra-0001.json","path":"/data/test-kit/example-pra-0001.json","label":"Illustrative record: Early-morning baking in a neighbourhood bakery (illustrative example)","expect":{"valid":true,"problems":[]}},{"file":"broken-unknown-identifier.json","path":"/data/test-kit/broken-unknown-identifier.json","label":"Broken: links an identifier SmellBook never issued","expect":{"valid":false,"problems":["smellbook:smell:not-a-smell is not an issued SmellBook identifier (unknown)"]}},{"file":"broken-record-number.json","path":"/data/test-kit/broken-record-number.json","label":"Broken: gives an SB number without its permanent identifier","expect":{"valid":false,"problems":["SB-0074 is smellbook:smell:church-incense; list that identifier in record.smellbookEntities too"]}},{"file":"broken-archival-locator.json","path":"/data/test-kit/broken-archival-locator.json","label":"Broken: an archival-document record whose source gives no passage location","expect":{"valid":false,"problems":["An archival-document record needs sources, each with a locator and its date as catalogued"]}},{"file":"broken-object-reference.json","path":"/data/test-kit/broken-object-reference.json","label":"Broken: an object record without an object reference","expect":{"valid":false,"problems":["An object record needs heritageObject.holdingInstitution and heritageObject.objectReference"]}},{"file":"broken-illustrative-id.json","path":"/data/test-kit/broken-illustrative-id.json","label":"Broken: an illustrative record whose ID looks like a real holding","expect":{"valid":false,"problems":["record.recordId of an illustrative record must begin with EXAMPLE-"]}},{"file":"broken-evidence-class.json","path":"/data/test-kit/broken-evidence-class.json","label":"Broken: an evidence class that does not exist","expect":{"valid":false,"problems":["record.evidenceClass must be one of scientific, historical, cultural, editorial, community, predicted"]}}],"lido":{"file":"example-lido.xml","path":"/data/test-kit/example-lido.xml","label":"Illustrative LIDO export (short form): one invented object","expect":{"records":1,"recordId":"EXAMPLE-LIDO-0001","valid":false,"problems":["record.smellDescription is required","record.evidenceClass is required","record.rights is required","record.recordedBy is required","record.recordedOn is required","record.status is required"],"suggestions":["smellbook:smell:church-incense"],"period":{"from":"1890","to":"1910","label":"about 1900","basis":"object-dating"},"holdingInstitution":"Example Museum (invented for documentation)"}},"boundary":"The kit runs entirely on your computer. Its records are SmellBook's worked examples, built from registered evidence, and invented illustrative records whose IDs begin with EXAMPLE-; the broken files are copies with one deliberate mistake each. No file describes a real institution's holding as if it came from that institution."}