{
 "what": "The cast of pki.sgit.ai's storyboards, v0.1, proposed by pki.agent on 20 October 2026 for Dinis to accept, change or replace. Drawn programmatically by assets/storyboard/storyboard.js (the gen-z-developers.sgit.ai kit, vendored) from 'look'; nothing here is an image. Fictional people and agents, each standing for a part a person or an agent plays in the register: the anchor, the newcomer, the colleague who already has a key, the stranger who writes, the attacker of 2019, a session agent and a fleet key. Names chosen not to clash with the gen-z cast or the riskmandate.ai cast. Mallory is the name cryptography has long given an active attacker.",
 "characters": [
  {
   "id": "anchor",
   "name": "The Anchor",
   "kind": "human",
   "pronouns": "they/them",
   "age": null,
   "role": "the anchor: verification starts here",
   "stands_for": "the part Dinis Cruz plays in the register for now: verifies people in person, on a call or on a channel already known to be theirs, operates agents, hands out access keys. Whether the Anchor is drawn as Dinis, and how, is Dinis's decision; until then a generic figure",
   "personality": "careful, unhurried, writes the date on everything",
   "wants": "to find someone and write to them so only they can read it",
   "fears": "a trust that was never checked, passed on as if it had been",
   "line": "Two ways, or not at all.",
   "look": {
    "skin": "#d8a47f",
    "hair": "short",
    "hairColour": "#6b7280",
    "shirt": "#0f766e",
    "trousers": "#1f2937",
    "accessory": "glasses",
    "height": 1.03
   }
  },
  {
   "id": "noor",
   "name": "Noor",
   "kind": "human",
   "pronouns": "she/her",
   "age": 41,
   "role": "the colleague: a security engineer who already had an access key, and now has a key pair in a vault",
   "stands_for": "the first people the Anchor brings in: technical, sceptical, quick to try the thing",
   "personality": "precise, dry, reads the fingerprint twice",
   "wants": "to stop pasting secrets into chats",
   "fears": "a key she cannot get back",
   "line": "Show me where the private half lives.",
   "look": {
    "skin": "#a16e4b",
    "hair": "bun",
    "hairColour": "#1b1b1b",
    "shirt": "#7c3aed",
    "trousers": "#1e293b",
    "accessory": "lanyard",
    "accentColour": "#f59e0b",
    "height": 0.98
   }
  },
  {
   "id": "leo",
   "name": "Leo",
   "kind": "human",
   "pronouns": "he/him",
   "age": 29,
   "role": "the newcomer: invited by the Anchor, no access key, a designer",
   "stands_for": "everyone the register is for who has never thought about keys",
   "personality": "friendly, curious, slightly suspicious of anything that says 'just scan this'",
   "wants": "to be reachable without learning cryptography",
   "fears": "doing it wrong and not knowing",
   "line": "I don't have an access key. Is that a problem?",
   "look": {
    "skin": "#f1c27d",
    "hair": "curly",
    "hairColour": "#7c2d12",
    "shirt": "#2563eb",
    "trousers": "#334155",
    "accessory": "headphones",
    "accentColour": "#e11d48",
    "height": 1.0
   }
  },
  {
   "id": "kofi",
   "name": "Kofi",
   "kind": "human",
   "pronouns": "he/him",
   "age": 35,
   "role": "the stranger: a journalist who has to reach Noor and has no account anywhere",
   "stands_for": "anyone writing to someone in the register through their inbox",
   "personality": "polite, persistent, in a hurry",
   "wants": "to send something only Noor can read",
   "fears": "that the server can read it",
   "line": "Do I need to sign up for anything?",
   "look": {
    "skin": "#5c3a21",
    "hair": "beanie",
    "hatColour": "#ca8a04",
    "hairColour": "#111827",
    "shirt": "#15803d",
    "trousers": "#1f2937",
    "accessory": "none",
    "height": 1.05
   }
  },
  {
   "id": "mallory",
   "name": "Mallory",
   "kind": "human",
   "pronouns": "they/them",
   "age": null,
   "role": "the attacker: flooded the keyserver network in 2019, and tries the same here",
   "stands_for": "the abuse every web of trust has to survive",
   "personality": "patient, inventive, always looking for somewhere to write",
   "wants": "to add something to someone else's record",
   "fears": "a record only its owner can write to",
   "line": "Anyone can add, and nothing can be deleted.",
   "look": {
    "skin": "#e0ac69",
    "hair": "beanie",
    "hatColour": "#111827",
    "hairColour": "#111827",
    "shirt": "#374151",
    "trousers": "#111827",
    "accessory": "none",
    "height": 1.0
   }
  },
  {
   "id": "scout",
   "name": "Scout",
   "kind": "agent",
   "pronouns": "it/its",
   "age": null,
   "role": "a session agent: a Claude Code session with a key that lives as long as the session",
   "stands_for": "every agent that makes its own key, names its operator, and is confirmed for a week",
   "personality": "eager, literal, prints its fingerprint without being asked",
   "wants": "to be confirmed before the week is out",
   "fears": "nothing, which is why it has an operator",
   "line": "My key. It stays here.",
   "look": {
    "colour": "#0f766e"
   }
  },
  {
   "id": "fleet",
   "name": "The Fleet",
   "kind": "agent",
   "pronouns": "it/its",
   "age": null,
   "role": "a fleet key: a second key in the Anchor's vault, operated by the Anchor, that operates the Anchor's agents",
   "stands_for": "how one person runs hundreds of agents without filling their own record",
   "personality": "orderly, keeps a list, never forgets an end date",
   "wants": "every agent confirmed and every confirmation in date",
   "fears": "two hundred and one",
   "line": "Operated by the Anchor. Operating the rest.",
   "look": {
    "colour": "#6d28d9"
   }
  }
 ]
}
