Details
A tiling pattern is any rectangular array of non-negative integers.
A template is a rectangular array containing non-negative integers or
Blank (_) values.
A
Blank value in a template can match any integer in a tiling pattern.
For example, the template
{{_,0,2},{0,1,_}} has four different integer values and two
Blank (_) values.
ResourceFunction["GenerateTiling"] assumes that possible values in a tiling pattern are bounded above by the maximum integer found in the set of templates.
Sets of potentially many templates should have the same bounding size, say {a,b}.
If all {a,b} subarrays of an {m,n} pattern match a template from input templates, the tiling pattern is said to be "consistent with local constraints listed in templates", or for short, "template consistent".
Values on the edge of a pattern should be checked against partial templates by allowing complete templates to partially intersect the tiling pattern and ignoring the overhang to exterior.
ResourceFunction["GenerateTiling"] takes the option "Boundary". When set to "Periodic", ResourceFunction["GenerateTiling"] also requires template consistency of a tiling pattern across North-South and East-West edges (i.e. toroidal boundary conditions).