Sharpee
Chord / Standard Library / Manipulation / putting and inserting

putting and inserting

Two actions share the surface English of "put". put X on/onto Y (and hang X on Y) is putting (putting); put X in/into/inside Y and insert X in Y parse as inserting (inserting), which delegates its work back into putting with the preposition forced to "in". place works in both phrasings, and move X to Y lands in putting since ADR-230 D4, which lets the destination's kind decide in versus on (the D4 ruling: move is a manipulation verb, never movement; see also pushing). The destination decides eligibility: on needs a supporter, in needs a container, and a closed openable container refuses. The item does not need to be in hand: putting performs an implicit take first, and refuses with the taking refusal if that fails (a fused-down ring cannot be put anywhere). Because inserting delegates its report into putting, a successful INSERT renders putting-put-in (override put_in / put_on for success text in both phrasings), while inserting's failures render under inserting-<key>.

The author writes:

create the Sorting Office
  a room

  Pigeonholes and parcel shelves, floor to ceiling.

create the oak counter
  aka counter
  a supporter
  scenery
  in the Sorting Office

  A long oak counter, polished by a century of elbows.

create the outgoing pigeonhole
  aka pigeonhole
  a container
  scenery
  in the Sorting Office

  A brass-framed pigeonhole marked OUTGOING.

create the dead letters bin
  aka bin
  a container
  scenery
  in the Sorting Office

  A wire bin for letters no one will ever claim.

  on putting it
    refuse bin-sealed
  end on

  phrase bin-sealed:
    The bin is sealed under a wire grille; only the postmaster may add to it.

create the letter
  in the Sorting Office

  A letter sealed with red wax.

create the stamp
  in the Sorting Office

  A commemorative stamp, unlicked.

create the player
  starts in the Sorting Office

override message putting-put-in
  It slides in with a papery whisper.
end override

The player sees:

> put the letter in the pigeonhole
(first taking the letter)

Taken.

It slides in with a papery whisper.

> insert the stamp into the pigeonhole
(first taking the stamp)

Taken.

It slides in with a papery whisper.

> insert the letter into the bin
The bin is sealed under a wire grille; only the postmaster may add to it.

> put the letter on the counter
(first taking the letter)

You take the letter from the outgoing pigeonhole.

You put the letter on the oak counter.

The delegation in one scene: a single override message under putting's put_in re-voices both phrasings, and the bin's single on putting it guard catches the insert command too, while put … on renders put_on untouched.

putting (putting-*)inserting (inserting-*)
Refusalsno_target · no_destination · cant_put_in_itself / cant_put_on_itself · already_there · not_container / not_surface · container_closed · no_room (container) · no_space (supporter)the same checks, rendered under inserting-<key> when the command was an INSERT
Successput_in · put_on (INSERT reports through put_in)— (delegates to putting)
Eventsput_in / put_on / put_blockedinsert_blocked

Interceptors: on putting it / on inserting it on the item or the container. An INSERT consults on inserting it first, then (through the delegation) on putting it on both entities, so register a given entity under one of the two gerunds, not both, or it will run twice; on putting it covers both phrasings, and in put all in the case a container-side clause runs once per deposited item.