Why is JWT so messy? base64(something) + "." + base64(something else)?

Why not just base64(JSON.stringify(everything)) ?