pull down to refresh

I'm sure it's stated somewhere in the nostr protocol spec, but I wonder why tags are specified as tuples instead of key-value pairs i.e.
tuples
{
  "kind": 30315,
  "content": "Sign up for nostrasia!",
  "tags": [
    ["d", "general"],
    ["r", "https://nostr.world"]
  ],
}
key-value
{
  "kind": 30315,
  "content": "Sign up for nostrasia!",
  "tags": {
    "d": "general",
    "r": "https://nostr.world"
  },
}