{
  "$comment": "legible did:legible event vectors v1 (identity-persistence profile, spec §12). event-id = lowercase-hex SHA-256( JCS(core) ); the core is every field NOT prefixed with '_'. Proof fields (_sig, _guardian_sigs) live outside the core, exactly as `security` lives outside canonical_content — they are tested separately, against real keys.",
  "rules": [
    "The core is every event field not prefixed with '_'; event-id = SHA-256(JCS(core)).",
    "did:legible = 'did:legible:z' + base58btc( SHA-256( JCS(genesis core WITHOUT the did field) ) ). The genesis event then carries the did; later events restate it.",
    "Each event after genesis links prev = event-id of its predecessor; the log is append-only.",
    "resolve(log, at) returns the key authoritative at timestamp `at`: rotations are immediate; recoveries commit only after the contest window, unless vetoed.",
    "To reproduce: JCS each event's core, sha256, compare with event_id; derive the did from the genesis; run resolution at the two timestamps."
  ],
  "did": "did:legible:zGecG2sidHhi7gjuHzbUyHJhhABov4tNoPkreFx1o8bS8",
  "events": [
    {
      "name": "genesis",
      "event": {
        "type": "genesis",
        "key": "did:key:z6MkweqR5eZgXZxh1K3SXHh6drHz4GVkzCF1rNquVceo4V36",
        "guardians": [],
        "threshold": 0,
        "contest_window_days": 30,
        "created": "2026-06-19T22:00:00Z",
        "prev": null,
        "did": "did:legible:zGecG2sidHhi7gjuHzbUyHJhhABov4tNoPkreFx1o8bS8"
      },
      "event_id": "a9f464a4ca5d70b2f8eb01654104092ad3c08af129b1c4f4c48824dff60273dc"
    },
    {
      "name": "rotate",
      "event": {
        "type": "rotate",
        "did": "did:legible:zGecG2sidHhi7gjuHzbUyHJhhABov4tNoPkreFx1o8bS8",
        "key": "did:key:z6MkizTWCktb5oJ7RmaDXC2AZmyAEFiCvrg9QeEe2sn3r3mD",
        "created": "2026-06-25T10:00:00Z",
        "prev": "a9f464a4ca5d70b2f8eb01654104092ad3c08af129b1c4f4c48824dff60273dc"
      },
      "event_id": "21eabd720795f8cb6823ac0d5b30913dbbdb77ee6dbf4384745e0a50456a7e76"
    }
  ],
  "resolution": [
    {
      "at": "2026-06-20T00:00:00Z",
      "expect": "did:key:z6MkweqR5eZgXZxh1K3SXHh6drHz4GVkzCF1rNquVceo4V36",
      "note": "before the rotation: the genesis key"
    },
    {
      "at": "2026-06-26T00:00:00Z",
      "expect": "did:key:z6MkizTWCktb5oJ7RmaDXC2AZmyAEFiCvrg9QeEe2sn3r3mD",
      "note": "after the rotation: the new key — records signed before it still verify against the old one"
    }
  ]
}
