Vectorize returns partial results without telling you when a metadata index came after the vectors. Making filterable fields a schema decision is how you stop finding that out in production.
Files in your own R2 behind one seam — with server-derived keys, uploaded bytes treated as hostile on the way out, and a daily Workflow that reconciles both directions of orphan.
Atomic, idempotent movements with overdraft prevented by a database constraint — and holds, which are what make wagering safe.
A skill rating that moves both ways and an experience total that only rises — plus three algorithms, and a deploy that fails if you wire a 1v1 rating to a four-player game.
Room codes, invites, a friend graph and a skill-bucketed queue — all ending at one session id, on two Durable Objects the CLI wires for you.
Seed data where the same three people own connected records in every table — and three independent layers standing between a fixture and your production database.
Authoritative turn-based sessions on a Durable Object, three example games on a reusable pattern, and a wagering stack with provably-fair dice.
Boards whose window is a CRON expression, closed windows that stay in your own D1 in plain SQL, and routes that deny by default when auth is absent.