So that when req'ing notes only root notes are returned. Building a feed is already difficult enough, we have many kinds there's no reason why kind 1 should share space with replies. The "backwards compatibility" argument to keep kind 1 replies as kind 1 is myopic and demonstrates a lack of intellectual maturity on the subject of protocol development or ecosystem growth rules; one of which is to progressively eliminate DX friction points (not irrationally cling to them)
Old clients will break, yes, but old clients are already broken. We accept unmaintained clients will break just as we accept bit-rot on public and free relays; so the "old client preservation argument" is BS and doesn't make it two steps past any logical counter-argument.
In the short term clients would have to support two patterns, but the kind 1111 pattern is a fraction of the implementation complexity of the kind 1 reply publish/aggregation pattern, so the overhead is minimal while the payoff for everyone is huge, especially on a long enough time-scale. Most client devs know this Alex Gleason (npub1q3s…d26p) VitorPamplona (npub1gcx…nj5z) PABLOF7z (npub1l2v…ajft)
Over time there would be less and less kind 1 replies, eventually, clients would drop support entirely, and once again, everybody wins:
- Relays win because they don't have to return a haystack so that clients can find needles (less bandwidth, less clock-time for relays = higher throughput, easier scaling) ... this particular solution imposes zero new scope on relays.
- Users win because everything is snappier and consumes less of their data plan
- Client developers win because they just eliminated 2-3k lines of complex, buggy and fragile code and countless tests from their source tree and now have a predictable pattern.
Either that or extend filters to include `IS SET` and `IS NOT SET` operand such such `["?p"]` and `["!?p"]` (semisol (npub1226…grkj)) ... don't make me start yet another operand battle fiatjaf (npub180c…h6w6)
