The cell verbs' shared gates and audit emit.
Every gate loads the cell, reads its grants where the tier consults them,
applies the tier's predicate, and answers a miss and a denial with the same
cell_not_found 404. A 403 on denial would confirm the row exists, so a
caller with no authority could walk ids and read a private cell's existence
off the difference; one wire shape for both is the IDOR mask. Each gate
returns the loaded row, so a handler that needs it doesn't re-read it.
Twins of the Rust fuz_cell_actions helpers; require_viewable_cell
covers both of Rust's authenticated and _optional_auth read gates.