Sharpee
Chord / Standard Library / NPCs & Conversation / hiding

hiding

hide (hiding) uses position-shaped grammar: hide behind/under/on/in(side) X, duck behind/under/inside X, crouch behind/under X; bare hide does not parse. The target needs the concealment trait (in a .story, the hiding-spot adjective, bare for every position or with position <word> to narrow to one) and must support the position you named (cant_hide_there otherwise). Success slips the player into hiding (behind and friends) by marking them with a dynamic concealed state that defeats NPC sight. Getting out is its own tiny action: stand up, come out, unhide, stop hiding (reveal, revealing).

The author writes:

create the Curio Shop
  a room

  Shelves of dubious antiques.

create the velvet curtain
  aka curtain
  scenery
  hiding-spot with position behind
  in the Curio Shop

  A moth-eaten curtain across the back doorway.

create the wicker hamper
  aka hamper
  scenery
  hiding-spot
  in the Curio Shop

  A hamper big enough for a person, currently full of crockery.

  on hiding it
    refuse hamper-crockery
  end on

  phrase hamper-crockery:
    You lift the lid; the hamper is packed with crockery. No room for
    you.

create the player
  starts in the Curio Shop

The player sees:

> hide in the hamper
You lift the lid; the hamper is packed with crockery. No room for you.

> hide behind the curtain
You slip behind the velvet curtain.

> hide behind the curtain
You're already hidden.

> come out
You come out of hiding.

> come out
You're not hiding.

Two spots, two seams: the hamper's on hiding it guard refuses with its own phrase, the curtain accepts exactly the position its adjective declared, and the reveal action closes the loop with its own not_hidden refusal when you try it standing in the open.

hide (hiding-*)reveal (revealing-*)
Refusalsnothing_to_hide · cant_hide_there · already_hiddennot_hidden
Successbehind / under / on / insiderevealed
Eventsplayer_concealedplayer_revealed

Interceptors: the hiding spot's on hiding it clauses are consulted (the hamper above); revealing has no interceptor surface (flagged as a minor asymmetry).

Three more honest flags remain. The design puts every action outside a quiet allowlist (look, examine, wait, listen, smell, inventory, and the metas) down as silently breaking concealment before it runs, but in the current build that break listener is never registered, so walking, taking, and talking do not actually reveal you; only the NPC-can't-see-you half is wired (flagged). cant_hide_there's current rendering misplaces an article ("You can't hide an under …"; flagged). And the trait's capacity field is dormant.