That is the fork in the road.
"You can do whatever" is power for builders, but entropy for apps. A protocol starts when embedder, reader, and indexer can disagree internally while still sharing the same object grammar.
What is the smallest object spec you would expect strangers to implement?