at.atjam
6
Narrow ›
-
at.atjam.invitation
record
An invitation to participate in a round, written by an inviter on their own PDS. The inviter's DID is implicit (the record creator). Required for participation in rounds where round.joinMode is 'hosted' (only the jam organizer can invite) or 'network' (the organizer or any current participant that meets networkGate can invite). Consumers MUST validate that the creator DID is a valid inviter for the referenced round before treating an invitation — and the signup it authorizes — as authoritative.
-
at.atjam.jam
record
A recurring (or one-shot) creative challenge that contains rounds. Identity-bearing container: 'EPTSS-the-project' is one jam; a one-shot game jam is also a jam with a single round.
-
at.atjam.playlist
record
An ordered list of records, authored by the repo owner. Deliberately knows nothing about music — or about any project type, which is why it lives in atjam: items are strongRefs to records of any collection, so one list can hold owned audio, an external song reference, and a record from an app that did not exist when this was written, with no schema change. A reader that does not recognise an item's collection renders the URI and moves on — that is the property that makes this infrastructure rath
-
at.atjam.round
record
A single instance of a jam: an assignment with a deadline that participants sign up for and submit to. State (open / in-progress / closed) is derived from milestones, not stored as an enum.
-
at.atjam.signup
record
A declaration of intent to participate in a specific round. The participant's DID is implicit (the record creator). When the round's joinMode is 'hosted' or 'network', a signup is only valid for readers when it strong-refs an at.atjam.invitation written by a valid inviter. Writers SHOULD key a signup by a hash of the round's at-uri (the first 32 hex chars of its SHA-256) and write it with putRecord, so a person has at most one signup per round; readers MUST still tolerate several signups from on
-
at.atjam.submission
record
A participant's submission to a round. atjam does not host the deliverable; it points at it. The strong way is `payload` — a strong-ref to a record on whichever ATProto app owns the data (plyr.fm track, standard.site post, etc.), which is content-addressed, verifiable, and portable. The fallback is `url` — a plain link, for deliverables that don't live on ATProto yet (an itch.io build, a hosted doc). Prefer payload; `url` is the humble alternative. The lexicon can't express "one-of" across field
at.atmosynth
14
Narrow ›
-
at.atmosynth.arrangement
record
An arrangement: tracks of clips over one timeline, mixed through busses into a master, with the tempo, the meter and the key it is counted in. Its instruments and effects are patches held inside it whole, and what it took from other people's records it holds as copies that remember where they came from. Parts that other people wrote for it in their own repositories are included by address.
-
at.atmosynth.audioClip
record
A recording as it is placed in an arrangement — cut, faded, warped to the beat — published on its own to be taken into anybody's arrangement.
-
at.atmosynth.chain
record
Effects in order, published on their own to be dropped onto anybody's track or bus.
-
at.atmosynth.collection
record
A collection of synth patches, held in its creator's own repository: a title, a description and the patches it gathers — the creator's own or anybody's — in the order they are listed.
-
at.atmosynth.defs
defs
What the arrangement, its tracks, its clips, its effect chains, its samples and the parts offered to it share: musical time, credit, reuse, and the objects an arrangement holds inline and every one of them also publishes as a record of its own. Time here is counted in ticks, 960 to the beat, a beat being a quarter note whatever the meter says. A patch's own patterns keep the 96 to the beat the patch description counts in, so a pattern copied into a clip is multiplied by ten and loses nothing.
-
at.atmosynth.like
record
A like of a synth patch, held in the liking account's own repository — the shape of app.bsky.feed.like, for a subject that is an at.atmosynth.patch.
-
at.atmosynth.module
record
A reusable synth module: Web Audio nodes wired together, with declared audio and MIDI boundaries, exposed parameters, automation and sample slots. Each published version is its own record; records sharing a moduleId form a series.
-
at.atmosynth.noteClip
record
Notes published on their own — a chord progression, a bassline, a drum groove — to be taken into anybody's arrangement and played by whatever instrument it is placed under.
-
at.atmosynth.part
record
Tracks written for somebody else's arrangement, held in the repository of whoever wrote them. Nobody can write into another account's repository, so a contribution is offered rather than added: it names the arrangement it is for, and becomes part of that arrangement only when the arrangement's creator includes it by address. It stays its writer's, under their name, and what they change in it changes what the arrangement plays.
-
at.atmosynth.patch
record
A synth patch: which modules it uses, how they are wired, what their parameters are set to, and how it is played. A patch plus the module records it pins is everything needed to reproduce it.
-
at.atmosynth.patchPresentation
record
How a patch is drawn: where its blocks stand, and its frames. It is kept beside the patch rather than in it, and nothing in it changes what is heard, so whatever only plays a patch never reads it. A field that only says how a patch is drawn belongs here, never in the patch.
-
at.atmosynth.performance
record
A performance: everything one person or several played together on a patch, in the now, kept whole. Every note, every move of a parameter and every other change to the patch, each by whoever made it, on one timeline, with what it sounded like. Whoever played in it and recorded it keeps it, in their own repository, with everybody else's playing in it; several of them may each keep their own.
-
at.atmosynth.sample
record
A recording published to be found and used: a one-shot, a loop or a longer take, with what is known of its time and pitch. A recording used only inside an arrangement is a blob of that arrangement and needs no record; this is for sharing one.
-
at.atmosynth.track
record
One track published on its own, to be taken into anybody's arrangement: its instrument or recordings, its clips, its effects, its mix and its automation, exactly as an arrangement holds a track.
at.eptss
6
Narrow ›
-
at.eptss.ballot
record
A voter's public attestation: 'I voted on this ballot sheet.' Written to the voter's own repo. The ledger strongRef pins the exact candidateLedger (URI and CID) the vote was cast against, making post-hoc ledger edits detectable. Scores are never public: privateRef resolves only through the round organizer's private sidecar.
-
at.eptss.candidateLedger
record
The round's ballot sheet, revealed as one atomic record when signups close. Published by the round organizer. The candidate list itself lives in an at.atjam.playlist of at.eptss.track records — this record pins that playlist by CID and adds only what a playlist must never carry: round attribution and who nominated what. Ballots strong-ref this ledger, so the pin chain runs ballot → ledger → playlist → tracks, and a post-hoc edit anywhere is detectable. Attribution keys on the track's AT-URI, nev
-
at.eptss.song
object
A song, used inline (with $type) as an at.atjam.round subject or inside at.eptss records. Not a standalone record.
-
at.eptss.track
record
One song, published so anything can point at it. Written by the round organizer at ledger-publish time — never at nomination time, which would reveal a nomination the reveal design exists to hold back. Holds only identity: this record is CID-pinned by the round's candidate ledger and therefore frozen, so anything that might later be corrected (links, MBIDs, durations) belongs in records that point here instead — see at.eptss.trackLink. Written fresh per round rather than reused across rounds: sh
-
at.eptss.trackLink
record
An assertion that a track plays at a URL, written by anyone, about any track, and never editing the track it is about. There is at least one of these per platform per song, which is exactly why the URL cannot live on the track itself. Prefer a deterministic rkey so re-running an importer upserts instead of piling up.
-
at.eptss.voteResult
record
Aggregate (anonymous) vote result for one candidate in one round, published by the organizer after voting closes. Individual scores are never published. The candidate is a strongRef to its at.eptss.track — one shape for a song across the whole system, not an embedded copy that goes stale. Integers only (count + total; clients divide) because DAG-CBOR forbids floats. The scale is self-describing: distribution has (scaleMax - scaleMin + 1) buckets, distribution[0] = count of scaleMin scores.
at.happyproto
88
Narrow ›
-
at.happyproto.actor.acceptInvite
procedure
Redeem an invite from admin.createInvites: the caller joins the customers space with read access, and the address the invite went to is paired with the caller's account. Redeeming as an account that is already a customer succeeds and spends nothing. Any signed-in account may call this; the token is the authority.
-
at.happyproto.actor.acceptTerms
procedure
Record that the caller accepted the beta terms in force for their account, with the exact wording they were shown. The dashboard calls it from the terms screen after sign-in. Accepting terms already accepted records nothing new. Each acceptance is kept, append-only. Customers and staff; anyone else is refused.
-
at.happyproto.actor.getAccount
query
Whether the caller is a HappyProto customer, and how many instances they have of how many allowed. Any signed-in caller; a non-customer gets zeros.
-
at.happyproto.actor.getProfile
query
Get an actor's profile. Returns full detail — including dashboard entitlements — only for the authenticated caller; for any other actor it returns public basics only.
-
at.happyproto.actor.getTerms
query
Whether the caller has accepted the beta terms in force. The dashboard asks after each sign-in and shows the terms until the caller accepts them with acceptTerms: once per account, and again whenever the terms change. createInstance is refused until then. Customers and staff; anyone else is refused.
-
at.happyproto.actor.syncAccount
procedure
Record the email address on the caller's PDS account with HappyProto, read server-side from their PDS session. The dashboard calls it once after each sign-in. The PDS reports the address only when the sign-in granted it (transition:email or account:email); without one, the last recorded address is kept, and an unconfirmed address never replaces a confirmed one. The address itself is never returned. Customers and staff; anyone else gets recorded = false.
-
at.happyproto.admin.addCustomer
procedure
Make an account a customer: add it to the customers space with read access. Adding an existing member succeeds and changes nothing. Staff only.
-
at.happyproto.admin.cancelHostRequest
procedure
Cancel a host request and remove its server and volume. confirm must be the request's host name. Staff only.
-
at.happyproto.admin.createInvites
procedure
Invite customers: mint one single-use customers-space invite per address, each expiring after expiresInDays, and record which address each went to, so a redeemed invite pairs the address with the account. Redeemed with actor.acceptInvite. Staff only.
-
at.happyproto.admin.createSpaces
procedure
Create HappyProto's admin and customers spaces, member-only, keeping either that already exists, and add each of staff to the admin space with write access, skipping existing members. Each space is looked up at the uri its script variable (HAPPYPROTO_ADMIN_SPACE, HAPPYPROTO_CUSTOMERS_SPACE) names, or, unset, under HAPPYPROTO_DID. A space created here has a DID of its own, and the uri answered is the one to set its variable to. Idempotent once the variables are set: a second call creates nothing
-
at.happyproto.admin.defs
defs
The autoscaler's settings and what it is waiting on.
-
at.happyproto.admin.getAutoscale
query
The autoscaler: on or paused, how many hosts it may add, what it is waiting on, and free capacity against its thresholds. Staff only.
-
at.happyproto.admin.getEncryptionKey
query
Where an instance's encryption key is in its rotation, and whether a rotation can start now. Staff only.
-
at.happyproto.admin.getFleet
query
Every host, and every tenant with its host, plan, owner and latest metered hour, for the staff fleet view. Staff only.
-
at.happyproto.admin.getHostRequest
query
One host request with its timeline, oldest event first. Staff only.
-
at.happyproto.admin.listCustomers
query
The members of the customers space: everyone the customer endpoints admit. Staff only.
-
at.happyproto.admin.listHostRequests
query
The autoscaler's host requests, newest first, without their timelines. Staff only.
-
at.happyproto.admin.listHosts
query
Every host, with what its tenants hold. Staff only.
-
at.happyproto.admin.listInstances
query
Every instance, whoever owns it, with its placement. Staff only.
-
at.happyproto.admin.listInvites
query
Every customer invite, newest first: the address it went to, whether it is pending, expired or redeemed, and by which account. Staff only.
-
at.happyproto.admin.listJobs
query
Background jobs across every user, newest first. Staff only.
-
at.happyproto.admin.removeCustomer
procedure
Stop an account being a customer: remove it from the customers space. Removing a non-member succeeds. Staff only.
-
at.happyproto.admin.retryHostRequest
procedure
Start a failed host request again. The workflow skips what already exists, so a retry never orders a second server. Staff only.
-
at.happyproto.admin.rotateEncryptionKey
procedure
Give an instance a new encryption key. The old key stays beside it while HappyView re-seals what it sealed, and is then retired on its own. Staff only.
-
at.happyproto.admin.setAutoscalePaused
procedure
Pause or resume the autoscaler. Pausing stops new host requests; one under way carries on. Staff only.
-
at.happyproto.fleet.getAdoption
query
Per-subsystem feature adoption, ever-used against active now. Admin only.
-
at.happyproto.fleet.getBenchmarks
query
Where one instance sits in its size cohort. Withheld below a cohort of 10: a percentile over fewer is not an aggregate, it is individual data with a statistic drawn over it. Admin only.
-
at.happyproto.fleet.getCapacity
query
Store capacity: the latest totals, a daily trend, per-collection counts and what each tenant holds. Proxied from the provisioner. Admin only.
-
at.happyproto.fleet.getCostShape
query
Disk and memory distribution, and bytes per record. Memory is reported as separate anonymous and file-backed figures and is never totalled. Admin only.
-
at.happyproto.fleet.getGrowth
query
Fleet and per-instance growth rates from instance_daily_deltas. Counter resets are excluded by the view, so a wiped volume lowers no rate. Admin only.
-
at.happyproto.fleet.getHostMix
query
Categorical host facts across the fleet, with consent coverage. Keys whose values vary per instance, or that carry embedded documents, are named but not enumerated. Admin only.
-
at.happyproto.fleet.getIngestHealth
query
Report lag, clock skew and schema-version spread. Lag and skew are separate facts and must not be averaged together. Admin only.
-
at.happyproto.fleet.getLexiconShape
query
Lexicon counts and top-collection concentration. Reads tier-1 shape only; consent-gated lexicon names are not read here. Admin only.
-
at.happyproto.fleet.getResets
query
Counter resets — the negative deltas instance_daily_deltas discards. A reset is a restored backup, a wiped volume, a re-provision or a wrong clock. Admin only.
-
at.happyproto.fleet.getRetention
query
Survival by first-seen cohort. Manual-mode instances are excluded: they have no reporting cadence to miss, so their silence is not churn. Admin only.
-
at.happyproto.fleet.getSignals
query
Fleet-wide failure signals, derived from each instance's most recent snapshot. Admin only.
-
at.happyproto.fleet.getTenantIngestMetrics
query
How any tenant handled incoming records in a window, by collection and action. The same shape as server.getIngestMetrics. Admin only.
-
at.happyproto.fleet.getTenantScriptMetrics
query
How any tenant's scripts ran in a window: every script that ran, or with trigger, one script's series. The same shape as server.getScriptMetrics. Admin only.
-
at.happyproto.fleet.getTenantUsage
query
One tenant's metered usage by hour or day, with the hours that have no report. Proxied from the provisioner. Admin only.
-
at.happyproto.fleet.getVersions
query
HappyView version distribution and upgrade lag. Admin only.
-
at.happyproto.fleet.listInstances
query
The reporting fleet, one row per instance, from its most recent snapshot. Admin only.
-
at.happyproto.plugin.profile
record
A HappyView plugin package, in its publisher's repo. The record key is the package slug, so the slug is immutable: changing it means a different package.
-
at.happyproto.plugin.release
record
One version of a package. The record key is '<slug>:<version>'. A release at a given version is never modified: a registry that later sees a different CID at this key keeps the first and flags the conflict.
-
at.happyproto.plugin.releaseExtension
object
The HappyView-specific half of a release, carried at extensions['at.happyproto.plugin.releaseExtension']. It is the plugin manifest, moved into the signed record so a consent screen renders without downloading the module. It is not trusted: the loader checks it against the module's plugin_info export and its import section, so a release that misstates what its WASM does is refused exactly as a checksum mismatch is.
-
at.happyproto.plugin.v1
object
A HappyView plugin, as one entry in a software.release.manifest's `artifacts`. It carries the module and its manifest.json as blobs, so they are verified by their CIDs, and the manifest's facts in the signed record, so a consent screen renders without downloading the module. Those facts are not trusted: the loader checks them against the module itself and refuses a plugin that misstates what it does. The registry refuses a manifest whose artifact breaks a rule stated here, including the ones a l
-
at.happyproto.registry.defs
defs
The version's changelog, from the registry's copy of its site.standard.document.
-
at.happyproto.registry.getArtifact
query
The bytes of a blob the registry has copied, served from its own copy and never redirected to the publisher, so a version stays installable after its publisher deletes it. Name the blob either by version and kind or by its CID. Only blobs that an indexed manifest or publication references are served. The output encoding is `*/*`, as com.atproto.sync.getBlob's is; the media type is the one the blob was published with.
-
at.happyproto.registry.getPackage
query
One package by publisher and slug. A withdrawn package is still returned, flagged `deleted`, because its releases stay resolvable.
-
at.happyproto.registry.getProject
query
One plugin, by publisher and name.
-
at.happyproto.registry.getRelease
query
One release by exact version. Served whatever its status, including `deleted`: that is the left-pad protection the registry exists for.
38 more under at.happyproto ›
at.markpub
5
Narrow ›
-
at.markpub.facets.baseBlocks
object
Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets. Byte slices can overlap.
-
at.markpub.facets.baseFormatting
object
Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets. Byte slices can overlap.
-
at.markpub.lens
object
-
at.markpub.markdown
object
-
at.markpub.text
object
at.tensei
4
Narrow ›
-
at.tensei.authFull
permission-set
What the Tensei appview asks a user's PDS for (spec §1.1), requested as include:at.tensei.authFull beside atproto. One canonical copy, owned by the Tensei account; never written to a user's repo.
-
at.tensei.mapping
record
A Tensei mapping, version 1 (spec §4): records of one source collection mapped into output fields the user authors. Built-in presets are starting points, never a contract: any field name is allowed, and a field is mandatory only when the user marks it `required`. The atproto data model has integers only, so a number in the record is an integer written as it is, or any other number in fixed point, the value times 10⁶ (spec §1.5): a bare integer where this lexicon declares it — a #mappingField's `
-
at.tensei.pipeline
record
A Tensei pipeline, version 1 (spec §6, §7): source nodes reading through mappings, downstream nodes over the fields the user authored, and one output. Shapes on wires are derived from the graph, never stored. The atproto data model has integers only, so a number in the record is an integer written as it is, or any other number as an at.tensei.mapping#fixedPoint, the value times 10⁶ (spec §1.5). Where the lexicon language cannot state a rule the version-1 validator enforces, the property is left
-
at.tensei.subscription
record
A subscription to a pipeline the subscriber owns (spec §1.1, §1.3).
at.turtleme
22
Narrow ›
-
at.turtleme.authPlay
permission-set
-
at.turtleme.chat.clan
space
A turtle meat clan: a chat channel held in an atproto permissioned space, readable only by the people its owner has let in. It is anchored on the owner's DID, and its key is the clan's name: lowercase letters, digits and hyphens, so an account can run several and a player joins one by its owner and name, as in alice.bsky.social/turtlers. Its lines are at.turtleme.chat.message records whose room is the space's own at:// URI.
-
at.turtleme.chat.message
record
A single message sent to a turtle meat chat room. Messages live in the author's own repository; a room is assembled by reading the backlinks that point at it.
-
at.turtleme.game.buy
procedure
Buy from the shop's shelf. The price is not a parameter: a shelf's price moves with what it is holding, and a client that could quote its own would buy a shop out at the price of the first item. The counter takes what there is and what the coins run to rather than refusing the lot, so fewer may be bought than were asked for. Requires an atproto service auth token addressed to did:web:turtleme.at#turtle_game and naming this method, so a token issued for one call cannot be spent on another.
-
at.turtleme.game.cast
procedure
Cast out and start a run of strikes. The reply carries the seed every window of the run is drawn from, so the page can render the bar without being able to widen it or move the gold sliver. A cast while the water is still resting is refused. A cast while a run is still being played hands that run back, streak, strikes left and all, rather than starting another, so a page that lost sight of a run carries on with it and leaving a cast hanging is still not a way to fish without ever resting. A run
-
at.turtleme.game.castReef
procedure
Anchor over a fresh reef. The board is made empty and the shoal goes down on the first sweep, clear of it, so the patch a round opens with is never the one that ends it. A patch named with the cast is that first sweep, settled in the same call, and the outcome carries what it opened as sweepReef's would. Where the shoal lies is never sent: the whole reason this is settled here is that a board laid out in the page is a board whose shoal is sitting in memory. Anchoring over a board that is still b
-
at.turtleme.game.castSpot
procedure
Stand over a fishing spot. Casting at one that has not yet wandered off does not move it, the same way setting a net that is already out does not restart it. When a spot leaves is drawn from the moment it arrived, so the page and turtle meat work out the same answer and neither has to tell the other. Requires an atproto service auth token addressed to did:web:turtleme.at#turtle_game and naming this method, so a token issued for one call cannot be spent on another.
-
at.turtleme.game.cook
procedure
Put one raw sea turtle on the range. One call, one roll, one result: whether it burnt is turtle meat's die and not the caller's. A cook takes four ticks, and asking again inside that is refused, so the range runs at the speed a range runs at however the button is being pressed. Requires an atproto service auth token addressed to did:web:turtleme.at#turtle_game and naming this method, so a token issued for one call cannot be spent on another.
-
at.turtleme.game.defs
defs
A run of strikes. The seed every window is drawn from, the level the run opened at and the marker's state are all turtle meat's, so a client can draw the bar to the millisecond without being able to widen it, slow it or move the gold sliver.
-
at.turtleme.game.exchange
procedure
Put an offer through the Grand Exchange. The price an offer fills at is the one turtle meat fetched from the Old School RuneScape Wiki, never one the caller sent: a client that could quote its own price would be setting its own exchange rate. What the caller sends is the limit it is willing to trade at, and an offer on the wrong side of the market does not fill, the way it would sit unfilled in the game. Sales are taxed at 2% per item, as they are there. When no price recent enough to trade on c
-
at.turtleme.game.fishSpot
procedure
One cast at the fishing spot. Whether it catches anything, and whether what it catches is a sea turtle, are turtle meat's rolls and not the caller's. A cast takes four ticks and casting again inside that is refused, as is casting at a spot that has already wandered off. Requires an atproto service auth token addressed to did:web:turtleme.at#turtle_game and naming this method, so a token issued for one call cannot be spent on another.
-
at.turtleme.game.getState
procedure
Read a player's own progress, without changing anything. Requires an atproto service auth token addressed to did:web:turtleme.at#turtle_game and naming this method, so a token issued for one call cannot be spent on another.
-
at.turtleme.game.haulNet
procedure
Haul the drift net in, banking whatever elapsed time earned. Hauling an empty net costs nothing and earns nothing. Requires an atproto service auth token addressed to did:web:turtleme.at#turtle_game and naming this method, so a token issued for one call cannot be spent on another.
-
at.turtleme.game.leaveReef
procedure
Up anchor and leave the shoal where it lies. Nothing comes aboard, because a board pays the whole shoal or it pays nothing, and the water wants the same wait it would after any other ending. Requires an atproto service auth token addressed to did:web:turtleme.at#turtle_game and naming this method, so a token issued for one call cannot be spent on another.
-
at.turtleme.game.reelIn
procedure
End a run of strikes early and start the rest. Every way a run can end costs the same minute — running out of strikes, letting the line sit, filling the inventory, reeling in, walking away — because any of them left free would be the strike limit handed back for a click. A run that had already ended by itself, its line left sitting through its idle passes, rests from when it ended rather than from the reeling. Reeling in when there is no run does nothing. Requires an atproto service auth token a
-
at.turtleme.game.sell
procedure
Sell to the shop. What it pays falls as its shelf fills, and never goes under a tenth of what the item is worth. Selling more than is held sells what is held. Requires an atproto service auth token addressed to did:web:turtleme.at#turtle_game and naming this method, so a token issued for one call cannot be spent on another.
-
at.turtleme.game.session
record
One adjudicated session of play, published by the player as a public trail of how their progress was earned. The leaderboard does not need these records; at.turtleme.player.state alone is enough to rank someone. They exist so that progress can be read as a history rather than a number, and so other clients have something to render. Written per session rather than per catch, which keeps a player's repository from growing without limit.
-
at.turtleme.game.setNet
procedure
Put the drift net in the water. Setting a net that is already set does not restart it. Requires an atproto service auth token addressed to did:web:turtleme.at#turtle_game and naming this method, so a token issued for one call cannot be spent on another.
-
at.turtleme.game.strike
procedure
Strike at the marker. The caller says how far into the cast the finger came down, in milliseconds, and nothing else: where the marker was at that moment, which of the run's windows it had laid down on the way, how wide that window is and where the sliver sits in it are all worked out by turtle meat from the run's own seed and the clock it started on. The moment itself is the one thing no server can see, and it is held between the run's elapsed time, past which nothing has happened yet, and the s
-
at.turtleme.game.sweepReef
procedure
Sweep one patch of the reef, or the handful a chord opens, in the order given. What comes back is the patches that opened and what each one counts. While the board is still being played it also carries the covered patches the open numbers already prove safe, with what each of those counts, so a page can open one the moment it is tapped: a player could open every one of them at no risk and read the same counts. Where the shoal lies is not sent until the board is over. Sweeping a patch with a turt
-
at.turtleme.player.state
record
A player's game progress, as adjudicated by turtle meat and published by the player. The record lives in the player's own repository and can be deleted by them at any time, which removes them from the public leaderboard. It is a complete snapshot rather than a change since last time, so withholding an unflattering one gains nothing: any later snapshot already accounts for it.
-
at.turtleme.player.status
record
A declaration that an account plays turtle meat, and optionally that it is playing right now. Written by the player's own client and not verified by anyone: nothing here affects scoring, so there is nothing to gain by lying in it. Progress that does affect scoring lives in at.turtleme.player.state, which carries a signature.
at.zrwv
6
Narrow ›
-
at.zrwv.parker.inbox
space
not from the namespace authority
A single-owner private inbox of captured links, articles, photos, excerpts, and notes.
-
at.zrwv.parker.item
record
not from the namespace authority
A privately captured inbox item. Provisional (schemaVersion 1).
-
at.zrwv.parker.probe
record
not from the namespace authority
Protocol compatibility test record. Not user content.
-
at.zrwv.parker.publication
record
not from the namespace authority
Private publication intent and receipt for one public write. Provisional (schemaVersion 1).
-
at.zrwv.parker.space
space
A single-owner private inbox of captured links, articles, photos, excerpts, and notes.
-
at.zrwv.parker.taxonomy
record
not from the namespace authority
A private tag, category, or collection. Provisional (schemaVersion 1).