JSON Schema is already the schema format inside OpenAPI, AsyncAPI, and MCP. Using it means OBI can reference those specs directly without translation. Any other choice would have made interop harder, not easier.
The programming language analogy is about structural compatibility between contracts, not about the wire format the contract is written in.
OBI needs its schema format to be universally parseable, deterministic to compare, and rich enough to describe the portable subset of any binding format's type system. JSON Schema meets those requirements without tying the spec to any one ecosystem. Proto-level fidelity would center gRPC. A custom IDL would fragment tooling. JSON Schema is the neutral ground.
The limitations are real, especially with proto. For example, our own proto interface creator implementation maps 32-bit integers to JSON Schema `integer` and 64-bit integers to `string` to avoid JSON precision loss beyond 2^53, following Proto3's canonical JSON mapping. Proto enums are int-valued with names; JSON Schema enums are typically strings. Proto's oneof differs semantically from JSON Schema's oneOf. Maps with non-string keys can't be expressed directly.
These affect cross-service structural comparison, not execution. Executors handle source types natively on the wire, so int64 stays int64 when you actually make a call. Transforms bridge shape differences between operation schemas and binding sources at runtime. The comparison layer works at a coarser grain in v0.1 because that's what makes it deterministic and universally implementable. Future profile versions can tighten comparison precision as the ecosystem converges on the tradeoffs worth making.
Well he didn't choose JSON, he chose JSON Schema and since the documentation is trying to hide the existence of JSON Schema and the potential limitations of it when used in combination with e.g. gRPC, when the schema is 99% of the project it's hard to trust the project.
That said, if it feels buried, I'll look at surfacing it more clearly.
You're right about the gRPC fidelity issues though. int64 precision, oneof vs oneOf semantics, enum value mapping, and well-known types all need careful handling when binding to Proto. The tradeoff is that JSON Schema is already the schema format inside OpenAPI, AsyncAPI, and MCP, so OBI can reference their schemas directly without translation. Proto would have given better fidelity for gRPC but required schema translation for every other binding. Picking JSON Schema prioritizes cross-binding reach over depth in any one protocol.
The fidelity limitations deserve clearer documentation. Adding that to the list. Thanks for pushing on this.
Yeah. And you could be extremely productive in less time than that if the environment and incentives were alligned in a healthy way. This is congruent with the point of the article
Microsoft, how cheap minded you have to be to understand that you don't need ads? You already had everything you need to grow without slapping ads everywhere.
You had everything great. Xbox, Windows, Office,... and somehow in a short span of time you managed to enshittify everything. Focus on you core strength. Ads is not one of them. And the combination Ads+Ai it is not either. Stop ruining great things. You had - still have - great potential to have a competitive advantage over others yet you fall for these shitty practices.
I believe, if you had the chance, you would put ads on the C# compiler too.
When there is no more physical development? A couple of years after sexuality has been stabilized physically.
Why is that so clear in other animals but not in humans? Every other social construct is just mental gymnastics. We believe we are special and need to do these gymnastics to keep the importance up.
This is an interesting question. Neoteny is the preservation of juvenile features into adulthood and is a hallmark of domestication. Humans have been undergoing self-domestication so features like rounder faces and softer jaw lines are persisting past sexual maturity.
We _know_ the human brain is finishing its development in our early to mid twenties, maybe 10 years post puberty. This extra brain development likely needed for our advanced social and tool needs, and is a unique niche for humans. Our hidden brain development does make a difference. Other primates don't display this.
Man I hate JSON so much.
reply