A custom JSON operation: Follow
When you follow someone, you broadcast this data into the blockchain:
["custom_json", {
"required_auths": [],
"required_posting_auths": [<follower>],
"id": "follow",
"json": ["follow", {
"follower": "",
"following": "",
"what": ["blog"]
}]
}]
Can't say the best design, but looks like okay. Stop here for a moment, and think how would you design the resteem operation with a similar convention.
resteem operation
When you resteem a post, you broadcast that into the blockchain:
["custom_json", {
"required_auths": [],
"required_posting_auths": [""],
"id": "follow",
"json": ["reblog", {
"account": "",
"author": "",
"permlink": ""
}]
}]
Seems like the id of "reblog" operation is follow. Weird.

Software Complexity - The art of naming by Alexandre Oliveira.
Not sure about the original intention about this naming but let's remember the great computer science quote:
There are only two hard things in Computer Science: Cache invalidation and naming things. -- Phil Karlton
Vote for me as a witness so I can have more rants about design decisions on STEEM blockchain.