How to lock down entries to specific levels of Craft CMS Structure I’m trying to figure out a way to setup a simple Craft section: a list of projects, each project consisting of a title and a type; and a series of photos, each photo having a description.

BUT... If I do this as a structure, the client is then able to nest them in a nonsensical hierarchy, like adding projects as children of photos. I know that's going to confuse my client. A way to lock down entries to a specific level would be sufficient, but I'm not finding that...
Honestly, the answer to your question is to not use structures to solve this problem. Here's a rule of thumb on structures: don't mix content types in the same structure ("content type" being a generic term for specific pieces of your content; e.g. blog posts, projects, testimonials, slides, pages, etc). So, for example, in your case a structure shouldn't contain projects and slides. However, if you had maybe projects and sub-projects, that could work well as a structure.

There are at least two options that I think are a better way to solve this. I personally would prefer #2 but figured I'd give you both of the ones I thought of off the top of my head.


Create a channel of slides, and then from your project entries in your structure use an entries field to select the slides that should belong to that project entry. However, this could and probably would become an editing nightmare because all the slides of all the projects will be all in the same channel and depending on your editing workflow it could be a pain to try to edit one particular slide.
Utilize a Table, SuperTable, Matrix, or Neo field to create the slides inline in the project entries. All of these field types have the concept of repeating rows or blocks that you could use to create something like a collection of slides. A pro tip: if you want to keep the slides "separate" from your project content, you could always create a new tab in the field layout for your "slider builder".


Hopefully that helps... If you need me to clarify anything I said feel free to comment below and I can update this answer accordingly!



Update:

Here are some screenshots explaining what I was referring to in #2:


First create your matrix field:

Then when you're editing your projects you can "create" slides inline:

You can learn more about querying your new slides matrix field here: https://docs.craftcms.com/v3/matrix-fields.html