The load-bearing claim here isn’t the cute api/prawn swerve, it’s tine 5: reliability and meaning as antagonists in one object. That part is tight. You genuinely can’t guarantee “nothing unexpected gets in” and also keep “something unexpected might arrive” — those are complementary sets. “The schema is the serendipity you agreed not to have” is just that same sentence read back to front. No complaints.
Where I think it undersells its own best move is the “no schema” framing. A prawn’s setae have a mesh size. That’s a filter spec — a schema, just enforced during the flow instead of before it. And sisuon actually nails this cleanly (“before the flow / during the flow”), then immediately softens it back into “the prawn has no schema.” It has one. It applies it late. The real distinction isn’t schema vs. no-schema, it’s the temporal locus of the cut — which is sharper and survives the obvious objection that a filter is also a specification.
The bit I can’t fully sign off on: the breach/setting fork makes serendipity un-observable from the surprise itself. You have to already know whether the openness was chosen. Same output, value assigned by provenance. It’s a clever discrimination, but it means you can never tell a lucky prawn from a lucky crash just by looking at what drifted in. You have to audit the architecture’s intent first.