File type: Game

--Overview--

Games are part of the [[file:style triangle]]:
| Description		Looks			Data
| '''Game'''		[[type:Stylesheet]]	[[type:Set]]
| [[type:Field]]	[[type:Style]]		[[type:Value]]

Games provide the ''description'', i.e. what kinds of things are on a card.

--Package format--

A game is described in a [[file:package]] with the <tt>.mse-game</tt> file extension.
Such a package contains a [[file:format|data file]] called <tt>game</tt> that has the following properties.

--Properties--
! Property		Type			Default	Description
| '''Common to all packages'''	<<<	<<<	<<<
| @mse version@		[[type:version]]	''required''	Version of MSE this game is made for.
| @short name@		[[type:string]]		file name	A short name of this game, for the 'new set' list.
| @full name@		[[type:string]]		file name	A longer name of this game.
| @icon@		[[type:filename]]	''none''	Filename of an icon / preview for this game, for the 'new set' list.
| @position hint@	[[type:int]]		&infin;		Where to place this item in the 'new set' list? Lower numbers come first.
| @version@		[[type:version]]	@0.0.0@		Version number of this package.
| @depends on@		[[type:list]] of [[type:dependency]]s
			 			 		Packages this package depends on.
	
| '''Specific to games'''		<<<	<<<	<<<
| @init script@			[[type:script]]				@;@		Script to run when this game is loaded,<br/> can set variables
				 					 		to be used by other scripts in this game or stylesheets using it.
| @set fields@			[[type:list]] of [[type:field]]s	 		Fields for the styling panel.
| @default set style@		[[type:indexmap]] of [[type:style]]s	 		Default style for the set fields, can be overridden by the stylesheet.
| @card fields@			[[type:list]] of [[type:field]]s	 		Fields for each card.
| @card list color script@	[[type:script]]				from fields	Script that determines the color of an item in the card list. <br/>If not set uses the @card list colors@ property of the first card field that has it.
| @import script@		[[type:script]]				 	Script that is applied as the last step in the creation of a card in the new_card function. Must return a map from field names to values. Use the make_map function to dynamically create maps.
| @statistics dimensions@	[[type:list]] of [[type:statistics dimension]]s		from fields	Dimensions for statistics, a dimension is roughly the same as an axis. <br/>By default all card fields with 'show statistics' set to true are used.
| @statistics categories@	[[type:list]] of [[type:statistics category]]s		from dimensions	DOC_MSE_VERSION: not used since 0.3.6
				 					 		Choices shown on the statistics panel. <br/>By default all statistics dimensions are used.
| @pack types@			[[type:list]] of [[type:pack type]]s	 		DOC_MSE_VERSION: since 0.3.7
				 					 		The types of card packs that will be listed on the random booster panel.
| @has keywords@		[[type:boolean]]			@false@		Does this game use keywords? Should the keywords tab be available?
| @keyword match script@	[[type:script]]				@;@		Script to apply to the @match@ property of keywords.
| @keyword modes@		[[type:list]] of [[type:keyword mode]]s		 	Choices for the 'mode' property of keywords.
| @keyword parameter types@	[[type:list]] of [[type:keyword param type]]s	 	Types of parameters available to keywords.
| @keywords@			[[type:list]] of [[type:keyword]]s		 	Standard keywords for this game.
| @word lists@			[[type:list]] of [[type:word list]]s	 		Word lists that can be used by text fields.
| @add cards script@		[[type:list]] of [[type:add cards script]]s	 	DOC_MSE_VERSION: since 0.3.7
				 						 	A list of scripts for conveniently adding multiple cards to a set.

--Examples--
Look at the game files in the standard MSE distribution for examples.
