Thanks Phroi, really appreciate that.
I do think inter-protocol composition standards are a very interesting longer-term direction. My current instinct is that this probably belongs more naturally at a CellFabric layer than inside the core CellScript language alone.
The way I currently separate the responsibilities is roughly:
- CellScript: authoring and compiling individual cell protocols, including ProofPlan metadata that makes guarantees, coverage, and assumptions explicit;
- CellFabric: a higher inter-protocol intent and composition layer, describing how different protocols coordinate with each other before final CKB settlement.
So CellScript should first make lock/type boundaries, receipts, read_ref, witnesses, builder assumptions, and ProofPlan coverage visible for individual protocols.
A higher CellFabric layer could then describe how protocols expose intents, receipts, conflict keys, settlement plans, read/write boundaries, verifier interfaces, and ProofPlan coverage to one another.
I would not frame CellFabric as a replacement for lower-level validation changes such as output-lock validation. That still seems like a separate L1 semantics question. But I do think the broader motivation is related: protocols need safer and more explicit composition surfaces.
I had sketched a related direction here, and I suspect it may eventually be a better home for this kind of inter-protocol composition work, though it would need refinement if framed specifically around the NIP.
I will definitely tag you if I start exploring this layer more seriously.