         female: 2       # Female sexual mechanic
         intersex: 3     # Both male and female mechanics
 
+    @maxLocationHistory: 50 # Maximum number of rooms to keep in history cookie
+
     defaults: ->
         name: 'unnamed'
         shortDescription: 'an unnamed mob'

        sex: Mob.sex.none                  # Determines sexual mechanics
        height: 150                     # Height in cm
        weight: 80                      # Weight in kg
        tattoos: []                     # Invisible IDs assigned by other commands

        currentLocation: null

    initialize: ->
        @sessions = []
        @resolver = new MobAttributeResolver @

    hasPermission: (acl, permission) -> @resolver.hasPermission acl, permission
    mustHavePermission: (acl, permission) ->


        targets

    # Perminant saved tracking information (achievements, crimes, etc)
    hasTattoo: (tattoo) ->
        tattoos = @get 'tattoos'
        tattoos ?= {}
        tattoos[tattoo] != undefined

    getTattoo: (tattoo) ->
        tattoos = @get 'tattoos'
        tattoos ?= {}
        tattoos[tattoo]

    setTattoo: (tattoo, value=true) ->
        tattoos = @get 'tattoos'
        tattoos ?= {}
        tattoos[tattoo] = value
        @set 'tattoos', tattoos

    unsetTattoo: (tattoo) ->
        tattoos = @get 'tattoos'
        tattoos ?= {}
        if tattoos[tattoo] != undefined
            delete tattoos[tattoo]
        @set 'tattoos', tattoos

    # Temporary tracking information (seen rooms, room extras, etc)
    hasCookie: (cookie) -> @cookies[cookie] != undefined
    getCookie: (cookie) -> @cookies[cookie]
    setCookie: (cookie, value=true) -> @cookies[cookie] = value
    unsetCookie: (cookie) -> delete @cookies[cookie] if @hasCookie cookie



