Ниже представлен развёрнутый обзор. В том числе описаны рабочие подходы, что экономят время. В конце приведены подсказки, чтобы было проще сохранить понятность. Если анализировать построение, можно увидеть, что эта логика не фиксируется в одной конструкции, а меняется между вариантами.