====== Development ======

I'm keeping some notes here for now. These should really be refactored to somehwere else the moment the tools are made available through git!

===== Tax Tool =====
Known issues:

  * Improper case sensitivy for all fields (see {([forum]:1074)})
    * Current behaviour: treats fields as being casesensitive
    * Desired behaviour: treat fields as case insensitive
    * Implementation hint: wrap incoming resource view in an object that allows data fetching

  * Silent failure on missing fields (see {([forum]:2140)})
    * Current behaviour: Javascript exception when a field is not found
    * Desired behaviour: Feedback to use about missing field
    * Implementation hint: create validation functions for different data models, and check validity before use
===== Galaxy Map β3 =====

  * Switch away from render function + data set
  * Each entity has a 'visual' which is a declarative description of the entities visualisation
  * Layers are only used for z-ordering
  * hide/show based on entity classes
  * Clicking a (:hex) brings up the 'Entities in Sector' sidebar
    * this lists all entities (e.g. systems, holonet relays, hyperspace lanes, survey fleets, military fleets, outposts, space habitats, trade routes, etc.) in the sector (together with extra information such as faction, name, capacity, etc.)

==== Declarative Visuals ====
  * Primitives:
    * Group (list of visuals)
    * Route (list of (:hex))
    * Area (list of (:hex))
    * Label (text)
    * Location (image)
    * ?

Several of these visuals might want preprocessing to be more appealing visually. For example, two overlapping Area visuals might want the traditional contested territory striping. Holonet relays might interact with neighbouring relays to form network visuals.

Level of detail for several visuals might be useful. For example the visualisation of fleets (military, survey, etc.), outposts, space habitats and systems might offer more detail if zoomed in?
===== New Trade Data =====

Working with [[ic:Veolian Commonwealth (bookkeeping)]] as testbed.

Alpha version of tool: http://13w.nl/test-html/fwurg/routes/


FIXME:
  * What about magic money (corporations, racial characteristics)? (Corps could be noted down with a transfer from corp to govt.; once write-a-thon stuff has been done, automate corps. income structure)
  * Trade Key for identification of reciprocal trades?
  * There's currently a temporary ''hyperspace_lane'' data block hidden on the [[ic:Bozzy Spine]] page


=== Frozen data models ===

**trade_route**
  * ''From [ref]'': system, outpost, space habitat; physical locality (ex. ''Smi-Halek System'')
  * ''Path [route]'': colon-separated list of traversed sectors (ex. ''10 -5 : 10 -4'')
  * ''To [ref]'': system, outpost, space habitat; physical locality (ex. ''Adii Nasla System'')
  * ''Resources [ref]*'': references to all used resources; currently no model for specific assignment is available. (ex. ''#Trade Fleet 7, #Trade Fleet 8, #Hyperspace Lane 0'')

**trade**
  * ''Route [ref]'': A ''trade_route'' object (ex. ''#Trade route: Smi-Halek - Adii Nasla'')
  * ''<Tradable>'': For each <Tradable> the amount of shipped goods (ex. ''Organics: 380'')

**subsidy**
  * ''Faction [ref]'': The faction that benefits from this subsidy (ex. ''Veolian Commonwealth'')
  * ''Subsidy [ref]'': The law or other instrument that serves as justification for this subsidy (ex. ''Bozzy Spine Connection Law'')
  * ''Amount'': The amount claimed (ex. ''200'')


=== Work in progress data models ===

**open_market**
  * ''System [ref]'': system, outpost; physical locality (ex. ''Smi-Halek System'')
  * ''Direction'': whether this is a sale or a buy market exchange (ex. ''selling'' or ''buying'')
  * ''Tax'': The amount of tax received or paid, always positive
  * ''<Tradable>'': For each <Tradable> the amount of bought or sold goods, always positive (ex. ''Organics: 380'')

**transfer**
  * ''From [ref]'': The sending faction (ex. ''Veolian Commonwealth'')
  * ''To [ref]'': The receiving faction (ex. ''Praetorian Empire'')
  * ''<Transferable>'': For each <Transferable> the amount (ex. ''Tax: 380'' or ''Kelwaraan Credits: 1337'' or ''Shares Foo: 2'')

===== Tagging and Following =====

Tagging: ''inc/tagging.php'' and ''tools/open/*.php''

Following: ''tools/followed/*.php''

== Tagging, Current Model ==
  * Ensured for every thread:
    * ''(forum:<threadid> is a: thread)''
    * ''(forum:<threadid> entry title: "Thread <threadid>")''
    * ''(forum:<threadid> thread: <threadid>)''
  * Per 'tag(attribute)':
    * ''(forum:<threadid> tags: <tag>)''
    * ''(forum:<threadid> <tag>: <attribute>)'' optional 

== Followed, Current Model  ==

Table ''followed_threads''.
