User preferences
Include selected app preferences in a package only when the user intends to transfer them. Each property is optional. A new-deck file normally omits this file so importing learning material does not also change app preferences.
Flashnerd exports and restores Appearance (appLocale, appTheme, hapticFeedbackEnabled) and Review Settings (reviewAheadLimit, nextDayStartsAtMinutes). These five properties are the recognized portable preferences. Extra properties are ignored on import.
Location
preferences/user.json is one optional file with this exact name. It contains a single JSON object, not JSON Lines or an array. Pretty-printed JSON is valid in this file. Omit the file when there are no preferences to transfer.
Basic example
Save this object in preferences/user.json:
240 means the review day begins at 04:00 in the device's local timezone. reviewAheadLimit: 30 sets a 30-minute review-ahead window.
Full example
Copy the full user.json. This single object fills all five portable preference keys and can stay pretty-printed in the package.
Fields
All keys are optional. Omission leaves the value absent; it does not write a default or instruct the importer to clear an existing setting.
The format checks appLocale as a string; it does not validate a catalog of locale names.
The five keys listed above are read and applied. Other properties are ignored, including when their values are null or they accompany supported fields, and are not retained in later exports. Recognized keys still follow the types and null rules in the table; among them, only appLocale accepts explicit null.
Relationships and optional sections
This file has no id, createdAt, or updatedAt, and references no other package record. Appearance and Review Settings are logical groups, not nested JSON objects: write their keys directly at the top level.
Either group can be present on its own. When the app applies a group, properties omitted from that group retain the destination's existing values. Explicit false and 0 in recognized fields count as supplied values. An empty object {}, {"appLocale":null}, or an object containing only ignored properties has no settings to apply; if that is the package's only payload, validation rejects it. These preference objects can accompany valid records. Account, authentication, and billing data have no supported fields here.
Preference field errors identify preferences/user.json. A root-level user.json is not read.
Additional example: change only the theme
This is a complete alternative preferences/user.json file:
To transfer only the review-day boundary, use this complete alternative:
Do not concatenate these examples into separate lines in the file. Combine selected keys into one JSON object.