O-001, Foreign Gap
The error
error[O-001]: cannot want on maya's behalf. Gaps belong to their owners.
What fired
A seek naming another twin as its subject: an attempt to register a gap for someone else, from outside their twin.
Why the language forbids it
Axiom III: the receiver's grammar governs. A gap is the only thing in Osmol that attracts flow, which makes it the most consequential thing a twin can declare: it is standing permission for the mesh to route knowledge toward you. If any other party could register your gaps, they could manufacture your demand, and manufactured demand is the old push model in new clothes: "you wanted this", asserted by the person who benefits from you wanting it. Desire is sovereign. A system in which others can write your wants has only moved the inbox to a new place.
The grammar already enforces this structurally. Spec §5 notes, as one of its two load-bearing absences, that no production allows a seek (or an attention or membrane block) to name a foreign twin as its subject; the grammar can only speak about the twin it is inside. So why does the diagnostic exist? Because parsers are not the only producers of ASTs. Tools (code generators, migration scripts, LSP refactorings, anything that constructs syntax trees directly) can build shapes the concrete grammar cannot spell. The sovereignty checker in semantic analysis (dissertation Ch. 2, stage 3) exists to reject those shapes with O-001, so the property holds at the AST level and not only at the keyboard.
How to fix
Move the seek inside the twin that actually wants the value. There is no other fix, and that is intentional.
If what you really want is for them to learn something you know: declare the hold in your own twin and let their gap do the work. If they seek it and your membrane grants it, it flows. If they have no matching gap and you believe the knowledge matters anyway, stake reputation on it; that is the one lawful channel for unsolicited pressure. What you may never do is decide on their behalf that they want it.
In v0.1
The reference interpreter's line parser makes O-001 unenforceable-by-construction: a seek is always attributed to the enclosing twin, and the seek production has no slot in which a foreign twin could even be named. There is no code path that produces this error, because there is no way to write the offense. The explicit AST-level check lands with the Rust semantic analyzer, whose sovereignty checker guards against tool-constructed trees.
Related
- O-006, Foreign Sovereignty: the same axiom guarding
attentionandmembrane seek·stake- What Cannot Be Written