Filter endpoints by project scope: omit for everything the caller
may see, pass the literal shared for workspace-wide endpoints
only, or a proj_... id for endpoints scoped to that project.
Endpoints have no Default project - a null project_id means
workspace-wide, so the literal here is shared, never default.
Returns 404 project_not_found for a malformed id and for any
project outside your reach: a project-pinned API key or
service-account key reaches only its pinned project, and a member
holding project grants reaches only the granted projects. That 404
is the same in every case and does not reveal whether such a
project exists - outside your reach a project is answered as
nonexistent, never as forbidden. shared is always inside your
reach. Inside it, a well-formed id that matches nothing yields an
empty page.