Pointer to array of structs inside of same struct

Consider the following C code:

struct Turn1;
struct Turn2;

struct Turn1 {
  struct Turn1 *moves[6];
  int color;
  int optimal_result;
  int neighbor_count;
};

struct Turn2 {
  struct Turn2 (*moves)[6];
  int color;
  int optimal_result;
  int neighbor_count;
};

The struct Turn1 has an array of pointers to Turn1 and is valid.
The struct Turn2 has a pointer to an array of Turn2s (I think) and is invalid.
gcc error message:

thingy.c:12:18: error: array type has incomplete element type ‘struct Turn2’
   12 |   struct Turn2 (*moves)[6];

Why doesn’t this work?

Assuming the size of the array is known, how can I have a pointer to an array of structs within the same struct? Should I just use a pointer to Turn2 and do pointer arithmetic?
(This is actually for Cython code but Cython compiled successfully while gcc failed. Also I’m a C newbie.)