DISPLAY FORMAT TEMPLATE SYSTEM SPECS

OVERVIEW 

Display format template (aka name display format) templates are used to customize what is shown in minimal display areas in order for a user to identify a record uniquely
for selection purposes.

This is used for both small form factor grids (see core-main-grids.txt) i.e. on a phone as the only column displayed
This is also used for picklists inside forms like drop down boxes etc

CASES



REQUIREMENTS

Client
    - Main grid lists < 600px show only a single column based on template
    - Selection drop down boxes in forms for selecting other objects
    - Template editor under global settings for all main list objects
    

Server
    - List of templates with their column selections
        - For client editor
        - For server to process what the query and send for lists
    - List of fields available for templates for client and server validation etc
    - Caching likely useful as server will need to deal with templates constantly as users fetch almost any list or combo box source etc
    - Has to be very peformant as it will be doing this a lot
    - SERVER handles composing the list object name display, NOT the client
        - This saves bandwidth
        - Incurrs more computing ops at the server but bandwidth is more expensive than server power all around
        - Clients could be shitty and slow, this elminates that prospect
        - Easier to code in c# than in javascript! ;)

Back AND front end
    - Need to handle changes in fields gracefully i.e. a new field added in an update, a field removed in an update cleans out the template when detected etc
    - Should send the customized templated display name field to the reports as well as all the regular including name fields   
        - This is because users will likely want that for many reports
        - Kind of a calculated field        
    - Default templates come with Raven, user can customize further