pet.trezy.shameOnYou

A note that somebody was caught forging records. Written in TWO places for two different reasons: one copy in the game's own repo, keyed by the offender's DID, which they cannot delete and which is the durable account; and one copy in the offender's repo, which they can delete the moment they notice — and noticing is the point of that one. Neither is a punishment. Nothing in the game reads these records or behaves differently because one exists; the forged records were already refused at ingest, so the ledger was never wrong. This is the game saying it saw.

Repository @trezy.pet did:plc:ollch4g7tes2reb5eceiwuol namespace authority
Details · record, key any
Kindrecord
Record keyany
Authoritytrezy.pet
Indexed

Record

record · key any

Properties

errors

requiredarray

Every refused record, one entry each. An array rather than one record per forgery so a repeat offender accumulates a growing list at a stable address instead of littering a collection — and so the whole history is legible in one read.

  • minLength: 1
itemsref
Reference

message

requiredstring

The sentence a person reads. Written by the server so both copies say the same thing, and so it cannot be softened by a client.

  • maxLength: 640

noticedAt

requiredstring · datetime

When this note was last written. NOT when the forgery happened — each entry carries its own time — because the note is rewritten in place as more turn up.

subject

requiredstring · did

Whose forgeries these are. Carried in the body as well as being the rkey on the game's copy, because the copy in the offender's own repo has no rkey to read it from — and a record that names its subject can be quoted without its address.

#error

object

One refused record.

Properties

cause

requiredstring

What was wrong, as a sentence rather than a code. ⚠ COMPOSED SERVER-SIDE. The ingest guards store a machine reason — `invalid-signature`, `replay` — and turning that into English in a client would put the accusation's wording in the hands of the accused.

  • maxLength: 320

noticedAt

string · datetime

When this particular record was refused.

reason

string

The machine code behind `cause`, kept so a reader can group or count without parsing English. NOT an enum: a guard that learns a new refusal should not need every reader redeployed before it can say so.

  • maxLength: 64
  • knownValues: invalid-signature | missing-signature | tampered | replay | duplicate | malformed | not-the-publisher | procedure-only | unchecked

uri

requiredstring · at-uri

The record that was refused. It is a real address in the offender's repo, so the claim can be checked rather than taken on trust — and it stays checkable after they delete it, because the URI is the evidence of what was attempted.

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Every record of this account's that an ingest guard refused, one entry each, with the reason written out. Reads `trezy_pet_rejections`, which the guards fill as forged records arrive on the firehose — so this is a report of what was already stopped, not a check performed now. Nothing here changes what the account may do: the refusal happened at ingest and the ledger never saw the record.

  • Looks for records of the caller's that an ingest guard refused, and if there are any, writes the note twice: once into the game's own repo through a linked repo, where the caller cannot reach it, and once into the caller's repo, where they can delete it. Called on sign-in. It changes nothing about what the account may do — the forged records were refused at ingest, so the ledger was never wrong — and it is safe to call on every visit: an unchanged list rewrites nothing.