At this level
net.anisota · 2- net.anisota.authFullApp permission-set
- net.anisota.settings record User settings for the Anisota app, synced across devices via ATProto. The collection holds one record per category, keyed by category name: 'appearance', 'behavior', 'notifications', 'chat', 'moderation', 'controls', 'observatory', 'keyboard', 'atmosphere', 'posting'. A special 'index' rkey holds a map of category names to their latest updatedAt timestamp so clients can fetch only categories whose state has drifted. The legacy 'settings' rkey is the deprecated v27 monolithic record; clients run
- net.anisota.chronicle.achievement record not from the namespace authority DEPRECATED - superseded by net.anisota.chronicle.milestone. No new records are written to this collection; the schema is kept because earlier records still exist on users' PDSes and remain readable. rkey is the achievement ID (e.g. followers2500, level50). Immutable.
- net.anisota.chronicle.collection record not from the namespace authority Specimen photo record in the player's field guide. rkey is the specimen ID. Updated via putRecord when new photos are taken.
- net.anisota.chronicle.expedition record not from the namespace authority Expedition record. Created with status 'active' when entering the forest, updated to 'completed'/'abandoned' on extraction/abandon. rkey is a TID. Tracks the full lifecycle of a forest expedition including camps, gathered loot, light consumption, and conditions.
- net.anisota.chronicle.expedition.camp record not from the namespace authority Camp record. Created when a user makes camp during an expedition. Updated when camp is broken. References the parent expedition record via AT URI.
- net.anisota.chronicle.fieldwork record not from the namespace authority Signed quest completion record. rkey is the quest ID (e.g. 'first-post', 'make-camp'). Created once with createRecord when the quest is completed. Immutable.
- net.anisota.chronicle.inventory record not from the namespace authority Item record in the player's inventory. rkey is the item ID. Updated via putRecord when quantities change.
- net.anisota.chronicle.level record not from the namespace authority Immutable level milestone record. Created once on level-up with createRecord. rkey is zero-padded level (001-099).
- net.anisota.chronicle.log record not from the namespace authority Granular chronicle event log. Each record is a single timestamped event. TID rkey for chronological ordering. Used to capture moments that don't have their own record type (moth sightings, random encounters, item discoveries, etc).
- net.anisota.chronicle.log.daily record not from the namespace authority Daily activity snapshot. Updated throughout the day via putRecord. rkey is YYYY-MM-DD in user's local timezone.
- net.anisota.chronicle.log.monthly record not from the namespace authority Monthly aggregation of weekly records. rkey is YYYY-MM. Updated once per week, finalized when month ends.
- net.anisota.chronicle.log.weekly record not from the namespace authority Weekly aggregation of daily records. rkey is YYYY-WNN (ISO week). Updated once per day, finalized when week ends.
- net.anisota.chronicle.log.yearly record not from the namespace authority Yearly aggregation of monthly records. rkey is YYYY. Updated once per month, finalized when year ends.
- net.anisota.chronicle.milestone record not from the namespace authority A milestone reached in the field, shown on the Fieldwork page's Milestones tab. Successor to net.anisota.chronicle.achievement (legacy records in that collection remain readable but no new ones are written). rkey is the milestone ID (e.g. level-50, expedition-first-light). Created once with createRecord when the milestone is reached. Immutable.
- net.anisota.chronicle.progress record not from the namespace authority Signed player progression state. Singleton (rkey: self), overwritten via putRecord. Backend validates XP claims before signing.
- net.anisota.chronicle.walk record not from the namespace authority Walk record. Created with status 'active' at first engagement (first tracked action on the feed), kept current with putRecord, and updated to 'completed' when the walk closes (idle auto-close, light depletion, or a manual wrap-up). rkey is a TID. Walks are the everyday unit and are never numbered; identity is the record key and display identity is the walk's time. Tracks the full lifecycle of a walk including camps, gathered findings, light consumption, and conditions.
- net.anisota.chronicle.walk.camp record not from the namespace authority Camp record. Created when a user makes camp during a walk. Updated when camp is broken. References the parent walk record via AT URI.
- net.anisota.feed.draft record Record containing a draft post that can be edited and later published as app.bsky.feed.post
- net.anisota.feed.like record Record declaring a 'like' of a piece of content published in the Anisota feed. The target of the like is the 'subject' of the record. Most likes are keyed by TID; a like of a spell is keyed 'like' + two FNV-1a hashes of the spell's URI (spellLikeRkey), so one reader can like a given spell only once — hence key 'any'.
- net.anisota.feed.list record A list of posts for curation, bookmarking, or organization
- net.anisota.feed.listItem record Record representing a post's inclusion on a specific list. The AppView will ignore duplicate listitem records.
- net.anisota.feed.perception record One person's perception of an inkblot — their answer to 'what do you see?'. Points at the inkblot record via a strongRef 'subject'. A social response (not a lab creation), so it lives in the feed.* namespace. In the Social Inkblot Test, a viewer's own perception is written before everyone else's perceptions of the same blot are revealed (so the first impression is uncontaminated). Perceptions are aggregated through the Constellation backlink index on '.subject.uri'. Renamed from net.anisota.lab.
- net.anisota.feed.post record A post that can be created in the world of Anisota
- net.anisota.feed.repost record Record representing a 'repost' of an existing piece of content published in the Anisota feed. The target of the repost is the 'subject' of the record.
- net.anisota.graph.listMute record not from the namespace authority A record for muting content from all accounts on a list with fine-grained control over content types, duration, and feed targeting
- net.anisota.graph.mute record not from the namespace authority A record for muting content from a specific account with fine-grained control over content types and duration
- net.anisota.graph.scopedMute record not from the namespace authority An index of the accounts whose reposts or quote posts the viewer has muted through Bluesky's native scoped mute (app.bsky.graph.muteActor with onlyReposts / onlyQuoteposts). Bluesky stores the mute itself, but app.bsky.graph.getMutes returns only fully muted accounts, so a scoped mute is otherwise discoverable only by loading each profile. This record lets Anisota list and undo them, and enforce them client-side on unauthenticated reads where no viewer state comes back. It is a cache, not the so
- net.anisota.graph.wordlist record not from the namespace authority A named, shareable list of muted words/phrases — Anisota's managed layer on top of Bluesky's flat muted-words preference. Each list is a complete, self-contained record so it can be shared by URL and saved (copied) into another user's PDS, mirroring the net.anisota.spell.custom architecture. Muting is applied client-side by the moderation pipeline: multiple enabled lists combine, a list can be scoped to specific feeds, restricted to a time-of-day/day-of-week window, and softened with a strength
- net.anisota.lab.carving record not from the namespace authority A relief woodblock carving made in the Anisota Lab's Carving studio and saved to the owner's library. Each record stores the gouge paths that carved the block (a compact serialization so the carving can be reopened and edited), the chosen ink and paper colours, whether vertical mirror/symmetry was on, and an optional printed-result PNG thumbnail for display and re-export.
- net.anisota.lab.inkblot record not from the namespace authority A symmetric Rorschach-style inkblot crafted in the Anisota Lab's Social Inkblot Test and saved to the owner's library. The blot is fully reproducible from its integer 'seed' and its generation 'params'; 'palette' names the ink colour. A rendered PNG data URL is stored in 'image' so the blot can be shown anywhere (including by other people viewing the social gallery) without re-running the generator. Inkblots carry no user-supplied name: the record's TID rkey is its identifier and display name ev
- net.anisota.lab.inkblot.perception record not from the namespace authority One person's perception of an inkblot — their answer to 'what do you see?'. Points at the inkblot record via a strongRef 'subject'. In the Social Inkblot Test, a viewer's own perception is written before everyone else's perceptions of the same blot are revealed (so the first impression is uncontaminated). Perceptions are aggregated through the Constellation backlink index on '.subject.uri'.
- net.anisota.lab.nightsky.session record not from the namespace authority A record of one sky-gazing session in the Anisota Lab's Nightsky experiment, saved to the gazer's PDS. Captures how long they watched, how they were watching, and a tally of everything their viewfinder witnessed. Like Chronicle records, each session carries an ES256 signature minted by the Anisota backend, so the data can be verified to have come from the app rather than being hand-written.
- net.anisota.lab.petri record not from the namespace authority A petri culture grown in the Anisota Lab's Petri studio and saved to the owner's collection. A culture is stored as its recipe rather than its pixels: a 'seed', the dish dimensions, and the ordered list of 'drops' (each an ingredient inoculated at a normalised point and at a given iteration). Because the Gray-Scott reaction-diffusion simulation is deterministic, replaying that recipe rebuilds the exact field. 'iterations' is how far the culture has grown; 'lastTickAt' lets a reopened culture adv
- net.anisota.lab.plasmodium record not from the namespace authority A Physarum (slime-mould) organism grown in the Anisota Lab's Plasmodium workbench and saved to the owner's collection. Stored as its recipe rather than its pixels: a 'seed', the simulation 'gridSize', a 'genome' of behavioural parameters (all continuous 0..1 tunables scaled to integers 0..1000, since atproto lexicons have no float type), and the ordered 'foods' and 'inoculations' the grower placed. Because the GPU agent simulation is deterministic given the same seed, genome and placements, repl
- net.anisota.lab.poetry record not from the namespace authority A fridge-poetry composition made in the Anisota Lab's Word Magnets studio, where word tiles drawn from the author's own recent posts are arranged on a field into a short poem. The record keeps the assembled text, the placed tiles with their positions (so the arrangement can be reopened), and at-uri references to the posts the used words were drawn from.
- net.anisota.lab.redaction record not from the namespace authority A redaction (erasure poetry) piece made in the Anisota Lab's Post Redaction Art studio, where the words of an existing post are blacked out one at a time and the words left standing become a found poem. The record keeps the surviving text, the indices of the words that were redacted (so the piece can be reopened over the same post), and an at-uri pointing back at the post the words were drawn from.
- net.anisota.lab.sigil record not from the namespace authority A sigil crafted in the Anisota Lab's Sigil studio and saved to the owner's library. Each record stores the finished figure as a standalone SVG (for display and re-export) and its normalised 'core path' as integer coordinates (x and y interleaved, scaled 0..1000) — the single line a sigil is, and the shape a future gesture-passcode could be matched against. 'method' records which bench made it (intent, square, wheel or draw).
- net.anisota.lab.synth record not from the namespace authority A multitrack composition made in the Anisota Lab's Synth studio and saved to the owner's library. The piece is stored as compact musical event data (not audio), so it can be reloaded into the synth, replayed and edited. The shared loop has a tempo and step length; each track is either a 'tone' voice (a waveform playing degrees of the composition's scale) or a 'drum' lane (the studio's synthesized kit). A track's notes are stored in 'cells' as interleaved integers — for a tone track [step, degree
- net.anisota.observatory.element record not from the namespace authority One custom Observatory element — a button, note, quote, reminder, divider, spacer, heading or widget — as its own record, so it can be shared and saved ('learned') by other users, mirroring the spell architecture. Written by src/utils/observatoryElementService.js, which always writes exactly the payload key matching `type` and nothing for the others. The element's place and enabled state live in the separate ordering index at net.anisota.observatory.layout/self (entries: [{ rkey, enabled, order
- net.anisota.observatory.layout record not from the namespace authority A saved Observatory grid layout. Each record is a complete, self-contained snapshot of a layout — built-in button configuration, the row geometry, the flattened tile order, and embedded element snapshots — so it can be shared by URL and saved ('learned') into another user's PDS without depending on the original author's element records, mirroring the spell architecture. Tile references are 'builtin:<key>' for built-in tiles or 'element:<index>' pointing into the embedded elements array. layout.r
- net.anisota.spell.book record not from the namespace authority The user's spell book: a single index record (stored at rkey 'self') that tracks which net.anisota.spell.custom records the user has, whether each is currently cast (active), and in what order they appear. The individual spell definitions live in the net.anisota.spell.custom collection; this record only references them by rkey, so casting/dismissing/reordering a spell touches only this small index rather than rewriting each spell.
- net.anisota.spell.custom record not from the namespace authority A user-authored 'spell' — a conditional rule that produces typed effects on the Anisota interface (hiding elements, switching layouts, showing a lockout/alert, redirecting, overriding a setting, and so on). Each spell is a complete, self-contained record so it can be shared by URL and 'learned' (copied) into another user's PDS without depending on the author's other records, mirroring the net.anisota.observatory.layout architecture. A spell is evaluated against a context snapshot (time, activity