Re: parameterized derived type (PDT), you can refer to The Fortran 2003 Handbook and/or Modern Fortran Explained for background.
Here is a nice summary article by PGI group for a quick review.
So you will know PDT is a facility introduced starting Fortran 2003 and, unfortunately and I truly believe to be wrongly, much maligned. But I do think its design in the standard is half-baked. Nonetheless for this case you have highlighted in the original post, a PDT design appears better suited, it’s what I would adopt.
As to the syntax,
..
integer, kind :: nsides
..
it informs the processor, the type in question, say tile_t, has a kind-type parameter called nsides. The standard has semantic stipulations around type parameters which you can look up in a MN-007r1 document for the standard starting Fortran 2003 e.g., 23-007r1.pdf for the forthcoming Fortran 2023 revision.
But quickly, you can see nsides as coming into play similarly to your DP named constant. Practical consideration with this is a compile-time constant. However the useful aspect in your situation is poor person’s Generics with having a module defined with the two kinds of polygons you do intend to support, one with 13 vertices and the other with 14.