Inherits from NSObject
Conforms to GSContainerProtocol
GSUserDataProtocol
NSCoding
NSCopying
Declared in GSFont.h

Overview

This class defines the font object.

Font info properties, that have a user interface, have proper accessors, eveything else is stored in the custom parameters

Tasks

Other Methods

Creating and Initializing a GSFont object

Glyphs

Masters

Instances

Kerning

Features

Classes

FeaturePrefixes

customParameters

UserData

Properties

allGlyphs

allGlyphs All glyphs including the imported glyphs.

@property (strong, nonatomic) NSArray<GSGlyph*> *allGlyphs

allTags

Tags in all glyphs.

@property (nullable, nonatomic, readonly) NSArray<NSString*> *allTags

axes

The axes.

@property (nonatomic, strong) NSMutableArray<GSAxis*> *axes

classes

An array of GSClasse objects

@property (strong, nonatomic) NSArray *classes

customParameters

The customParameters. A list of customParameters objects

@property (nonatomic, strong) NSMutableArray<GSCustomParameter*> *customParameters

date

The font date

@property (strong, nonatomic) NSDate *date

disablesAutomaticAlignment

Disables automatic alignment of components

@property (nonatomic) BOOL disablesAutomaticAlignment

disablesNiceNames

disablesNiceNames

@property BOOL disablesNiceNames

Discussion

This is to prevent the automatic glyph name substitution. Set it to YES before you do big changes. Make sure to disable it after you are finished.

featurePrefixes

An array of GSClass objects that contain additional lookups

@property (nonatomic, strong) NSMutableArray *featurePrefixes

features

An array of GSFeature objects.

@property (strong, nonatomic) NSArray *features

fontMasters

An array of GSFontMaster objects

@property (strong, nonatomic) NSArray<GSFontMaster*> *fontMasters

fontName

The familyName.

@property (nonatomic, strong) NSString *fontName

glyphs

The array of GSGlyph objects

@property (strong, nonatomic) NSArray<GSGlyph*> *glyphs

gridMain

The size of the grid.

@property (nonatomic, assign) NSUInteger gridMain

Discussion

If it is 0, all values are stored as floats. 1 and above will ALWAYS round the coordinates.

See Also

gridSubDivision

The subdivision of the grid.

@property (nonatomic, assign) NSUInteger gridSubDivision

Discussion

Divides the grid.

See Also

instances

An array of GSInstance objects. This define export settings for interpolation and naming.

@property (strong, nonatomic) NSArray<GSInstance*> *instances

keepAlternatesTogether

Keeps alternated glyphs next to the base glyph

@property (nonatomic) BOOL keepAlternatesTogether

kerningLTR

the Kerning of the Font

@property (strong, nonatomic) MGOrderedDictionary *kerningLTR

Discussion

1) A Dict for each FontMaster (FontMaster id as key) 2) The Dict contains an entry for each glyph (the glyphID or GroupName (@MMK_L_XXX) is used as key) 3) These entries hold the values: glyphID or GroupName (@MMK_R_XXX) as key, kerning as value.

kerningVertical

the vertical Kerning of the Font

@property (strong, nonatomic) MGOrderedDictionary *kerningVertical

Discussion

1) A Dict for each FontMaster (FontMaster id as key) 2) The Dict contains an entry for each glyph (the glyphID or GroupName (@MMK_L_XXX) is used as key) 3) These entries hold the values: glyphID or GroupName (@MMK_R_XXX) as key, kerning as value.

note

The note.

@property (nonatomic, strong) NSString *note

parent

The receiver’s implementation of undoManager returns the parent’s undo manager. It is only used for font info and for adding/removing glyphs. Each glyph has its own undo manager (see [GSGlyph undoManager]).

@property (nullable, nonatomic, weak) GSDocument *parent

Discussion

Note: The receiver’s implementation of undoManager returns the parent’s undo manager. It is only used for font info and for adding/removing glyphs. Each glyph has its own undo manager (see [GSGlyph undoManager]).

properties

The properties.

@property (nonatomic, strong) NSMutableArray<GSFontInfoProperty*> *properties

tempData

a dictionary that stores data. It will not be written to disk.

@property (nonatomic, strong, nullable) NSDictionary *tempData

tempOTFFont

The path to the temp font

@property (nonatomic, strong, nullable) NSString *tempOTFFont

Discussion

This font contains no outlines and no kerning but the full GSUB table. It is used for the feature preview in edit view.

unitsPerEm

unitsPerEm (UPM).

@property (assign, nonatomic) NSUInteger unitsPerEm

userData

Place to store data.

@property (strong, nonatomic, nullable) NSDictionary *userData

Discussion

Here it is possible to store something. Please use a unique key. The objects should be able to serialize to a plist. If they are not, they should return all infos to store in description (as String).

versionMajor

versionMajor

@property (assign, nonatomic) NSUInteger versionMajor

versionMinor

versionMinor

@property (assign, nonatomic) NSUInteger versionMinor

Instance Methods

addAxis:

Adds the axis

- (void)addAxis:(GSAxis *)axis

Parameters

axis

the object to be added

addClass:

Adds a class to the font

- (void)addClass:(GSClass *)aClass

Parameters

aClass

the Class

addClassFromCode:

Convient method to add a class with the Text

- (void)addClassFromCode:(NSString *)text

Parameters

text

the class in FDK syntax, e.g. “@myClass = [A B];”

addFeature:

Adds the Feature

- (void)addFeature:(GSFeature *)feature

addFeaturePrefix:

Adds the Prefix to the font

- (void)addFeaturePrefix:(GSClass *)thePrefix

Parameters

thePrefix

the prefix

addFontMaster:

Adds the fontMaster to the font

- (void)addFontMaster:(GSFontMaster *)fontMaster

Parameters

fontMaster

The master to add.

addGlyph:

Adds the Glyph object to the font.

- (void)addGlyph:(GSGlyph *)glyph

Parameters

glyph

A GSGlyph object.

addGlyphsFromArray:

Adds the Glyphs object to the font.

- (void)addGlyphsFromArray:(NSArray<GSGlyph*> *)glyphs

Parameters

glyphs

A NSArray of GSGlyph objects.

addInstance:

Adds the Instance to the font

- (void)addInstance:(GSInstance *)instance

Parameters

instance

The Instance to add to the font.

addProperty:

Adds the property

- (void)addProperty:(GSFontInfoProperty *)property

Parameters

property

the object to be added

charStringFromDisplayString:

Converts a string that contains slash seperated glyph names in a regular unicode string

- (NSString *)charStringFromDisplayString:(NSString *)string

Parameters

string

A String containing slash seperated glyph names

Return Value

A UTF-16 string. For it will assigne a cached PUA codes for unencoded glyphs

characterForGlyph:

Returns a UTF32Char for the glyph.

- (UTF32Char)characterForGlyph:(GSGlyph *)glyph

Parameters

glyph

a GSGlyph object

Return Value

a UTF32Char

Discussion

It uses the unicode to find the char value. For unencoded glyphs it returns a cached PUA value.

classForTag:

Returns the class with the name.

- (nullable GSClass *)classForTag:(NSString *)tag

Parameters

tag

The class name.

compileTempFontError:

Recalculates the temp font.

- (BOOL)compileTempFontError:(out NSError **)error

Parameters

error

if there is a problem, it returns an NSError object (by reference) that contains details.

Return Value

YES if successfull, NO, if not.

Discussion

Call it, if you changed something like the glyph set or the features and need to make sure the temp font is up to date. This is usually done automatically.

compressKerningForDirection:

Compresses the kerning

- (void)compressKerningForDirection:(GSWritingDirection)direction

Discussion

if a GSGlyph has a Kerning Group and Direct Kerning, the Kerning is changed to Class Kerning.

countOfAxes

The number of axes

- (NSUInteger)countOfAxes

countOfClasses

The count of the classes

- (NSUInteger)countOfClasses

countOfCustomParameters

The count of customParameters

- (NSUInteger)countOfCustomParameters

countOfFeaturePrefixes

the count of the Prefixes in the font

- (NSUInteger)countOfFeaturePrefixes

countOfFeatures

The count of the features

- (NSUInteger)countOfFeatures

Return Value

The number of features in the Font.

countOfFontMasters

The count of masters in the font.

- (NSInteger)countOfFontMasters

Return Value

The number of layers currently in the font.

countOfGlyphs

The count of glyphs in the font

- (NSUInteger)countOfGlyphs

countOfInstances

The count of the Instances

- (NSUInteger)countOfInstances

Return Value

The number of Instances currently in the Font.

countOfProperties

The number of properties

- (NSUInteger)countOfProperties

customParameterForKey:

The customParameters where name == Key

- (GSCustomParameter *)customParameterForKey:(NSString *)key

customValueForKey:

The value of the customParameters where name == Key

- (id)customValueForKey:(NSString *)key

disableUpdateInterface

Delayes redrawing and updates.

- (void)disableUpdateInterface

Discussion

Will record the changes and update once in enableUpdateInterface. If you don’t need updates, use stopUpdateInterface

Warning: Always call enableUpdateInterface afterwards

enableUpdateInterface

Reanables redrawing and updates.

- (void)enableUpdateInterface

Discussion

This only has an effect if disableUpdateInterface was called before

featureForTag:

Returns the feature with the name or tag.

- (nullable GSFeature *)featureForTag:(NSString *)tag

Parameters

tag

The feature tag (like “smcp”)

featurePrefixForTag:

Returns the Prefix with the name.

- (nullable GSClass *)featurePrefixForTag:(NSString *)tag

Parameters

tag

The prefix name.

filterGlyphs:

Returns all glyph names that are present and set to export

- (NSArray *_Nullable)filterGlyphs:(NSArray<NSString*> *)glyphNames

Parameters

glyphNames

A array of glyph names

Return Value

A list of all glyphs that are in the font

filterKeepGlyphs:

Returns all glyph names that are present and set to export

- (NSArray *_Nullable)filterKeepGlyphs:(NSArray<NSString*> *)glyphNames

Parameters

glyphNames

A array of glyph names

Return Value

A list of exporting glyphs

fontMasterAtIndex:

The master located at index

- (nullable GSFontMaster *)fontMasterAtIndex:(NSInteger)index

Parameters

index

An index

Return Value

A GSFontMaster instance or nil if index is out of bounds

fontMasterForId:

Returns the fontmaster with this id

- (nullable GSFontMaster *)fontMasterForId:(nullable NSString *)id

Parameters

id

The ID of the font master. This is supposed to be a Unique id

Return Value

A GSFontMaster instance.

generateInstance:error:

Generates an instance

- (nullable GSFont *)generateInstance:(GSInstance *)instance error:(out NSError **)error

Parameters

instance

The Instance to use for interpolation.

error

if there is a problem, it returns an NSError object (by reference) that contains details.

Return Value

The interpolated font, or nil if something went wrong.

Discussion

It returns a new GSFont object with one master interpolated all glyphs/layers according to the settings in Instance.

glyphAtIndex:

The glyph object located at index.

- (nullable GSGlyph *)glyphAtIndex:(NSInteger)index

Parameters

index

An index within the bounds of the the glyphs array.

Return Value

a GSGlyph object.

Discussion

Checks for valid index and returns nil if index is to high.

glyphForCharacter:

Returns the glyph with the chars unicode.

- (nullable GSGlyph *)glyphForCharacter:(UTF32Char)aChar

Parameters

aChar

A (unicode) char.

Return Value

a GSGlyph object

glyphForId:

Returns the GSGlyph with this ID.

- (GSGlyph *)glyphForId:(NSString *)ID

Parameters

ID

the ID of the glyph.

Return Value

a GSGlyph object.

Discussion

Warning: This is a bit slow.

glyphForName:

Returns the GSGlyph with this name.

- (nullable GSGlyph *)glyphForName:(NSString *)name

Parameters

name

the name of the glyph.

Return Value

a GSGlyph object.

Discussion

Warning: This is a bit slow.

glyphForUnicode:

Returns the GSGlyph with this this Unicode.

- (nullable GSGlyph *)glyphForUnicode:(NSString *)unicode

Parameters

unicode

the unicode as a hex string (‘004C’)

Return Value

a GSGlyph object or nil if not found.

See Also

glyphForUnicodes:

Returns the GSGlyph with this this Unicode.

- (nullable GSGlyph *)glyphForUnicodes:(NSOrderedSet *)unicodes

Parameters

unicodes

a list of unicodes as hex strings (‘004C’)

Return Value

a GSGlyph object or nil if not found.

See Also

glyphNames

A list of glyph names

- (NSArray *)glyphNames

Return Value

A list of glyph names

glyphNamesForWildcard:error:

A list of glyph names matching query

- (nullable NSArray *)glyphNamesForWildcard:(NSString *)query error:(NSError *__autoreleasing *)error

Parameters

query

This can be a name containing wildcards (“a.*”) or a query (“script=arabic”)

error

if something goes wrong, it contains an error on return

Return Value

a list of glyph names or nil

gridLength

The effective grid width.

- (CGFloat)gridLength

Return Value

The effective size of the grid

Discussion

Calculated by Grid / Subdivision

hasGlyphs:

Returns a Boolean value if the font contains the glyphs

- (BOOL)hasGlyphs:(NSArray<NSString*> *)glyphNames

Parameters

glyphNames

A array of glyph names

Return Value

YES if all glyphs are in the font.

indexOfFeature:

Returns the index of feature in features

- (NSUInteger)indexOfFeature:(GSFeature *)feature

Parameters

feature

the object

Return Value

the index of the object

indexOfGlyph:

Returns the index of the glyph.

- (NSInteger)indexOfGlyph:(GSGlyph *)glyph

Parameters

glyph

The Glyph you are looking for

Return Value

The Index of the glyph or NSNotFound if not found

indexOfObjectInAxes:

Returns the index of axis in axes

- (NSUInteger)indexOfObjectInAxes:(GSAxis *)axis

Parameters

axis

the object

Return Value

the index of the object

indexOfObjectInProperties:

Returns the index of property in properties

- (NSUInteger)indexOfObjectInProperties:(GSFontInfoProperty *)property

Parameters

property

the object

Return Value

the index of the object

initWithDict:error:

initializes a font with a dictionary loaded from a pList.

- (instancetype)initWithDict:(NSDictionary *)fontDict error:(out NSError **)error

Parameters

fontDict

A dictionary

initWithURL:error:

Initializes a font with the contents of the location specified by a given URL.

- (instancetype)initWithURL:(NSURL *)fileURL error:(NSError **)outError

Parameters

fileURL

the location of the file

outError

If there is a error it contains an NSError object

Return Value

the GSFont object or nil

insertFontMaster:atIndex:

Inserts the FontMaster at Index

- (void)insertFontMaster:(GSFontMaster *)fontMaster atIndex:(NSUInteger)index

Parameters

fontMaster

The master to add to the font

index

The index to insert FontMaster.

insertObject:inAxesAtIndex:

Inserts the axis at index into axes

- (void)insertObject:(GSAxis *)axis inAxesAtIndex:(NSUInteger)idx

Parameters

axis

The object to insert

idx

The index

insertObject:inClassesAtIndex:

Insert the Class at theIndex in the font

- (void)insertObject:(GSClass *)aClass inClassesAtIndex:(NSUInteger)index

Parameters

aClass

the class

index

the index

insertObject:inFeaturePrefixesAtIndex:

Insert the Prefix at theIndex in the font

- (void)insertObject:(id)thePrefix inFeaturePrefixesAtIndex:(NSUInteger)index

Parameters

thePrefix

the prefix

index

the index

insertObject:inFeaturesAtIndex:

Inserts the Feature at theIndex

- (void)insertObject:(GSFeature *)feature inFeaturesAtIndex:(NSUInteger)idx

insertObject:inInstancesAtIndex:

Inserts the instance at Index

- (void)insertObject:(GSInstance *)instance inInstancesAtIndex:(NSUInteger)index

Parameters

instance

The instance to insert.

index

The index at what to insert the instance.

insertObject:inPropertiesAtIndex:

Inserts the property at index into properties

- (void)insertObject:(GSFontInfoProperty *)property inPropertiesAtIndex:(NSUInteger)idx

Parameters

property

The object to insert

idx

The index

isUpdateInterfaceEnabled

Check if the updating is enabled

- (BOOL)isUpdateInterfaceEnabled

Return Value

NO if disableUpdateInterface was called

keepsGlyphs:

Tests if all the glyphs are present and set to export

- (BOOL)keepsGlyphs:(NSArray<NSString*> *)glyphNames

Parameters

glyphNames

A array of glyph names

Return Value

YES if all glyphs will end up in a exported font.

kerningForFontMasterID:LeftKey:RightKey:direction:

Returns a kerning value

- (CGFloat)kerningForFontMasterID:(id)fontMasterID LeftKey:(id)leftKey RightKey:(id)rightKey direction:(GSWritingDirection)direction

Parameters

fontMasterID

The Master id

leftKey

either a glyph id or a glyph group (@MM_L_XXX)

rightKey

either a glyph id or a glyph group (@MM_R_XXX)

Return Value

the kerning value

newGlyphWithName:changeName:

Adds a new glyph with this glyphName to the font

- (GSGlyph *)newGlyphWithName:(NSString *)glyphName changeName:(BOOL)changeName

Parameters

glyphName

The new glyph name

changeName

If changeName is yes, the glyphName will be converted to nice-name, otherwise not.

Return Value

The new glyph.

objectInAxesAtIndex:

Returns object at idx in axes

- (GSAxis *)objectInAxesAtIndex:(NSUInteger)idx

Parameters

idx

The index

Return Value

the object at index

objectInFeaturesAtIndex:

The feature at index

- (nullable GSFeature *)objectInFeaturesAtIndex:(NSUInteger)idx

Parameters

idx

The index of the feature

Return Value

The feature located at theIndex.

objectInInstancesAtIndex:

The Instance at index

- (nullable GSInstance *)objectInInstancesAtIndex:(NSUInteger)index

Parameters

index

The index of the instance.

Return Value

The Instance located at index.

objectInPropertiesAtIndex:

Returns object at idx in properties

- (GSFontInfoProperty *)objectInPropertiesAtIndex:(NSUInteger)idx

Parameters

idx

The index

Return Value

the object at index

panose

The panose value for the font

- (nullable NSMutableArray *)panose

propertyListValueFormat:

Returns the content of the object to store it in pList.

- (NSDictionary *)propertyListValueFormat:(GSFormatVersion)format

Parameters

format

the version of the dict

Discussion

This is used to store the data in the .glyphs file.

removeClass:

Removes the class from the font

- (void)removeClass:(GSClass *)aClass

Parameters

aClass

the class

removeFeaturePrefix:

Remove the Prefix at theIndex from the font

- (void)removeFeaturePrefix:(GSClass *)thePrefix

Parameters

thePrefix

the prefix

removeFontMaster:

Removes the fontMaster from the font

- (void)removeFontMaster:(GSFontMaster *)fontMaster

Parameters

fontMaster

The master to remove.

removeFontMasterAtIndex:

Removes the fontmaster with this id

- (void)removeFontMasterAtIndex:(NSInteger)index

Parameters

index

The index of the FontMaster to remove.

removeGlyph:

Removes the Glyph from the font

- (void)removeGlyph:(GSGlyph *)glyph

Parameters

glyph

A GSGlyph to remove from the font.

removeGlyphs:

Removes the Glyphs from the font

- (void)removeGlyphs:(NSArray<GSGlyph*> *)glyphs

Parameters

glyphs

A NSArray of GSGlyph to remove from the font.

removeKerningForFontMasterID:LeftKey:RightKey:direction:

removes a kerning value

- (void)removeKerningForFontMasterID:(NSString *)fontMasterID LeftKey:(NSString *)leftKey RightKey:(NSString *)rightKey direction:(GSWritingDirection)direction

Parameters

fontMasterID

The Master id

leftKey

either a glyph id or a glyph group (@MM_L_XXX)

rightKey

either a glyph id or a glyph group (@MM_R_XXX)

removeObjectFromAxes:

Removes the axis

- (void)removeObjectFromAxes:(GSAxis *)axis

Parameters

axis

the object to be removed

removeObjectFromAxesAtIndex:

Removes the axis at idx

- (void)removeObjectFromAxesAtIndex:(NSUInteger)idx

Parameters

idx

The index

removeObjectFromClassesAtIndex:

Remove the class at theIndex from the font

- (void)removeObjectFromClassesAtIndex:(NSUInteger)index

Parameters

index

the index

removeObjectFromCustomParametersForKey:

Removes the first paramter with then Name

- (void)removeObjectFromCustomParametersForKey:(NSString *)key

Parameters

key

The name

removeObjectFromFeaturesAtIndex:

Removes the Feature at theIndex

- (void)removeObjectFromFeaturesAtIndex:(NSUInteger)idx

removeObjectFromInstancesAtIndex:

Removes the Instance at Index.

- (void)removeObjectFromInstancesAtIndex:(NSUInteger)index

Parameters

index

The of the Instance to be removed.

removeObjectFromProperties:

Removes the property

- (void)removeObjectFromProperties:(GSFontInfoProperty *)property

Parameters

property

the object to be removed

removeObjectFromPropertiesAtIndex:

Removes the property at idx

- (void)removeObjectFromPropertiesAtIndex:(NSUInteger)idx

Parameters

idx

The index

removeUserDataForKey:

Removed the object with this key.

- (void)removeUserDataForKey:(NSString *)key

Parameters

key

The key to remove

replaceObjectInClassesAtIndex:withObject:

Replaces the the class a theIndex with Class

- (void)replaceObjectInClassesAtIndex:(NSUInteger)index withObject:(GSClass *)aClass

Parameters

index

the index

aClass

the class

resetCache

If you changed the glyphs array yourself, call that method to reset some chances.

- (void)resetCache

saveNameForGlyph:

Calculates a names that is unique for the font

- (NSString *)saveNameForGlyph:(GSGlyph *)glyph

Parameters

glyph

The Glyph

Return Value

The glyph name with a .0XX suffix if the name is already in use by another glyph

saveNameForName:

Calculates a names that is unique for the font

- (NSString *)saveNameForName:(NSString *)glyphName

Parameters

glyphName

The glyph name

Return Value

The glyph name with a .0XX suffix if the name is already in use by another glyph

scaleBy:

Scale the hole font.

- (void)scaleBy:(CGFloat)scale

Parameters

scale

Multiplier for scale the font (glyphs, kerning and metrics)

setCustomValue:forKey:

Set the value for key

- (void)setCustomValue:(id)value forKey:(NSString *)key

Parameters

value

The value to add

key

The name of the paramter

Discussion

It will look for an existing paramter with the name an overwrite its value, or adds a new parameter

setKerningForFontMasterID:LeftKey:RightKey:Value:direction:

adds a kerning value

- (void)setKerningForFontMasterID:(id)fontMasterID LeftKey:(id)leftKey RightKey:(id)rightKey Value:(CGFloat)value direction:(GSWritingDirection)direction

Parameters

fontMasterID

The Master id

leftKey

either a glyph id or a glyph group (@MM_L_XXX)

rightKey

either a glyph id or a glyph group (@MM_R_XXX)

value

the kerning value

setProperty:value:languageTag:

Adds a new font info value to the array specified by key or updates an existing one.

- (void)setProperty:(NSString *)name value:(id)value languageTag:(nullable NSString *)languageTag

Parameters

name

The key whose plural form specifies an array property of GSFontInfoValue objects on the receiver.

value

The actual value to be added.

languageTag

The language under which the the value should be stored. Defaults to English if nil is passed.

setTempData:forKey:

Adds key/value to tempData. Pass nil as value to remove previous set data

- (void)setTempData:(nullable id)value forKey:(nonnull NSString *)key

Parameters

value

and object or nil

key

the key

setUserData:forKey:

Adds something to the fonts userData.

- (void)setUserData:(nullable id)value forKey:(nonnull NSString *)key

Parameters

value

The object should be able to serialize to a plist. If they are not, they should return all infos to store in description (as String).

key

Please use an uniqe key that gives some indecation who put it there (e.g. prefix it with your name or project).

Discussion

This also triggers undo/document dirty state.

sortGlyphs

Is called if the there are changes.

- (void)sortGlyphs

sortKerning

Triggers the soring of kerning

- (void)sortKerning

sortMetrics

Sort Metrics with values from first master

- (void)sortMetrics

stopUpdateInterface

Disable redrawing and updates completly.

- (void)stopUpdateInterface

Discussion

Changes will not trigger an update. Only use this calefully and call enableUpdateInterface if you need future updates.

Warning: Always call enableUpdateInterface afterwards

tempDataForKey:

return value for key in tempData

- (nullable id)tempDataForKey:(nonnull NSString *)key

Parameters

key

the key

Return Value

a value or nil

updateMetrics

Recalculate the LSB and RSB for all glyph

- (void)updateMetrics

Discussion

This will not apply the metrics keys.

userDataForKey:

convenience accessor to get to the content of the userData dict

- (NSObject *_Nullable)userDataForKey:(NSString *)key

Parameters

key

the key

Return Value

the data stored with key