The root element for puzzles based on rectangular array of squares. All data should be UTF-8 encoded. Any special instructions on how to fill in the puzzle etc. Typically displayed when the puzzle is shown or printed. Four types of puzzles are supported crossword with clues, coded crossword, word search and sudoku. This attribute is a string which contains letters and numbers used in the puzzle. It is BASE64 encoded image. JPG or GIF currently supported Only if letter square; If true then background picture visible only in solution, multi-letter text in puzzle Crossword Rectangular grid. To emulate shape crosswords omit (or use type="void") cells which are out of bounds of the shape. Links several cells into one word. If the word is not hidden than all cells of the word are highlighted when only one of is selected. If a word is linked with a clue than the clue is highlighted when selected a cell which belongs to the word and the word is highlighted when a user selects the clue. Blocks of clues. Word search Rectangular grid. To emulate shape crosswords omit (or use type="void") cells which are out of bounds of the shape. locations of search words. Blocks of clues (words to find). Use HTML (#FFFFFF) format to define colors. This element is to store Sudoku puzzle. cell count width of Sudoku box cell count height of Sudoku box This element is to store coded crossword. Word is a union of cells. The most general format is store words as a list of cells where every cell is identified by its coordinates. It is very flexible but verbose format. To make it less verbose 'range' is also supported. Range is string 'start-finish' (e.g. 5-10). First number is considered to be start position, so to create 'from right to left' or 'up' orientation use inversed ranges where first number is greater (e.g. 10-5). Id is used to refer to the word from a clue. Range (e.g. 5-10) or one number of cells. Direction is from first number to the second. In other words first number can be greater. In this case direction is 'from right to left'. Range (e.g. 5-10) or one number of cells. Direction is from first number to the second. In other words first number can be greater. In this case direction is 'up'. Used to specify multi-word solutions. E.g. 'Big Ben' instead of 'BIGBEN'. If true than cells in this word are not highlighted together and link between clue and a cell is not visible for users. If true than the word is keyword. Range (e.g. 5-10) or one number of cells. Direction is from first number to the second. In other words first number can be greater. In this case direction is 'from right to left'. Range (e.g. 5-10) or one number of cells. Direction is from first number to the second. In other words first number can be greater. In this case direction is 'up'. Range (e.g. 5-10) or one number (6) Used to render some clues as one block. Title of the block. List of clues. Specifies if random, alphabetic, by-position or standard ordering of clues. by-position is common in France and Italy. If not present assume normal numbering unless numbered-sides element present, in which case by-position. Specifies if random, alphabetic or standard ordering of clues This element is to store stylistic parameters of the grid. Enables to have numbered sides of the puzzle. Shape and position of clues-in-squares arrows Sizes are measured as fraction of square size. If true than blocks are rendered in Italian style. Default value is false. Borders are thicker (2px) if this attribute is true. Default value is false. Can be normal, sequential, coded, none. Allows to specify size of cells in pixel. Default value is 21. Color of lines of the grid. Color of blocks Letter color. Letter color (if it is marked as solve-status = pencil). Color used for numbers in left and right-top numbers. width (as fraction of cell size) of the divider line between multiple clues in one clue square. Between 0 and 1. This type contains attributes used to configure one cell. Clues in the cell. This element can be used to define arrows which should be drawn inside the cell. Background image of the cell. X-position of the cell. For spanned cell set range (e.g. '1-2') Y-position of the cell. Type of the cell: letter, block, void, clue. Default value is letter. Solution for this cell. The current solution entered in the square by a solver Useful to save/load state of a puzzle. If pencil or revealed (cheated) if pencil then the letter is rendered as 'temporary'? Useful to save/load state of a puzzle. If true than the solution is visible for a user. Number in top left corner. Number in top right corner Left-side bar Upper bar Background shape. Currently 'circle' is only supported background shape. Letter squares only. Background color allows to override grid background for this cell. Foreground color allows to override grid foreground for this cell. if 1 then no across clue, if 2 no down clue, if 3 neither. Default 0. This element can be used to define arrows which should be drawn inside the cell. Arrow start position. Valid values are {left,right,top,bottom}. Actual start pixel will be calculated with respect to 'from-fraction' attribute. Defines actual start pixel. Valid values are in the range [0, 1]. '0' means top (left) corner if from is left or right (top, bottom). '1' means bottom (right) corner if from is left or right (top, bottom). Arrow direction. Set if the arrow is used to continue a word rather than point from a clue This type is enumeration of valid values for attributes 'from' and 'to' in 'arrow' element. In general can contain any html snippet, but at this time only 'span' 'b' 'i' 'sub' 'sup' are supported. Also the mixed content is not supported at this moment. So, all not-formated text should be wrapped into 'spans'. If all text has no format it can be stored without spans. Used to link word (solution) and the clue. Number of the clue. If present it should simply be added in brackets after the clue, so clue appears as, 'Clue (format)' If the word is part of a linked clue (clue for a word spanning multiple cell regions), and the contents merely refers the solver to another clue for the same word id, is-link is the number of the part of the link referred to e.g. for word spanning 1-4, 5-6 and 9-10, if this clue is for 5-6, is-link=1