Marmot-TS
    Preparing search index...

    Type Alias SendIntent

    SendIntent:
        | { kind: "applicationMessage"; payload: Uint8Array }
        | { kind: "proposal"; proposal: Proposal }
        | {
            actorPubkey: string;
            extraProposals?: (
                | Proposal
                | ProposalAction<Proposal>
                | (Proposal | ProposalAction<Proposal>)[]
            )[];
            kind: "commit";
            proposalRefs?: string[];
        }
        | { kind: "selfUpdate" }
        | {
            actorPubkey: string;
            extraProposals: (
                | Proposal
                | ProposalAction<Proposal>
                | (Proposal | ProposalAction<Proposal>)[]
            )[];
            kind: "foundingAdd";
        }

    Application intent when calling MarmotGroupEngine.send.

    Type Declaration

    • { kind: "applicationMessage"; payload: Uint8Array }
    • { kind: "proposal"; proposal: Proposal }
    • {
          actorPubkey: string;
          extraProposals?: (
              | Proposal
              | ProposalAction<Proposal>
              | (Proposal | ProposalAction<Proposal>)[]
          )[];
          kind: "commit";
          proposalRefs?: string[];
      }
    • { kind: "selfUpdate" }
    • {
          actorPubkey: string;
          extraProposals: (
              | Proposal
              | ProposalAction<Proposal>
              | (Proposal | ProposalAction<Proposal>)[]
          )[];
          kind: "foundingAdd";
      }
      • actorPubkey: string
      • extraProposals: (Proposal | ProposalAction<Proposal> | (Proposal | ProposalAction<Proposal>)[])[]
      • kind: "foundingAdd"

        A founding Current-profile Add commit (epoch 0 → 1) merged locally with no group-message publication obligation (refs/marmot/protocol-core/joining.md lines 21-30 — "the founding-creation exception"; FOUND-01). Unlike "commit", extraProposals is required: a founding Add with no Add proposals has no reason to exist. There is no proposalRefs field — at epoch 0 there are no staged proposals to bundle by reference.

        CR-03: the engine refuses this intent — throwing before any commit is built, with no state change — unless the group is at epoch 0, the local member is the sole occupied leaf, there are no unapplied proposals, and extraProposals resolves to at least one proposal, all of them Adds. refs/marmot/protocol-core/publish-lifecycle.md line 77 limits the empty-publication-obligation exception to epoch 0 and its immediately following founding Add Commit.