# Adding your data Create `~/.local/share/manicule/entries.json` as a JSON array: ```json [ { "id": "author-work-short-name", "passage": "The words you want to remember.", "author": "Author or speaker", "source": "Book, speech, letter, or other source", "kind": "novel", "year": "1813", "locator": "Chapter 1", "reference": "https://example.com/primary-source", "tags": ["attention", "courage"] } ] ``` Only `passage`, `author`, and `source` are required. `id` is generated when missing; keep an explicit ID if you may correct the wording later. Optional fields are `kind`, `year`, `locator`, `context`, `reference`, and `tags`. Manicule also accepts one entry or an object containing an `entries`, `quotes`, `items`, or `data` array. Imports can use these aliases: | Output | Accepted input names | | --- | --- | | `id` | `id`, `key`, `slug` | | `passage` | `passage`, `quote`, `text`, `content`, `thought` | | `author` | `author`, `writer`, `by` | | `source` | `source`, `book`, `title`, `work`, `bookTitle`, `book_title` | | `kind` | `kind`, `category`, `type` | | `year` | `year`, `date` | | `locator` | `locator`, `location`, `chapter`, `page` | | `context` | `context`, `background`, `note` | | `reference` | `reference`, `url`, `link` | | `tags` | `tags`, `topics`, `labels` | ## Build your own library Capture the exact passage while reading or listening, then record who said it, the work, and a useful locator. Prefer the original text, an author archive, a library, or an institutional transcript over quote-aggregation sites. Add the direct URL in `reference` and use `context` for anything you want to remember. Exported highlights only need to be transformed to one accepted shape. If a field name differs, add it to `fieldAliases` in `Model.js`. If the root structure differs, extend `recordsFromData`. Keep validation in `validateEntry` and `validateCorpus`, and add a normalization test. Validate before reloading: ```bash node scripts/validate-library.mjs ~/.local/share/manicule/entries.json ``` The file is accepted as one transaction: malformed entries or duplicate IDs leave the last working library visible. Keep personal extracts local, and only publish text you wrote, licensed text, or material whose copyright status you have checked.