I took idempotent and safe to be functionally equivalent. i.e. that which causes no state-change on the server. Thanks for the correction. Effectively a "debounced" operation.
Idempotent means that one invocation has the same effect as more than one invocation.
Safe means that zero invocations has the same effect as one or more invocations.