* DONE biblatex firstinits option to giveninits
* DONE useprefix per names/name?
* DONE More flexible sorting allowing arbitrary name part order?
* DONE name taxonomy (first, middle, last) needs to be generalised. Internally in Biber too
** firstname -> given
** lastname -> family
** middlename -> middle
** prefix -> prefix
** suffix -> suffix
* DONE lastname mandatory relaxed? How about just mandatory that some part is defined since sorting isn't always on lastname first?
* DONE name parts and gender types in data model as constants
* DONE \keypart round \namepart
* DONE make namepart specs
** DONE named
** DONE selectable per sortlist
*** TODO abx@aux@sortscheme etc. probably this needs to be generalised to mentioned refcontexts
** DONE per-entry
** DONE per-namelist, per name
* DONE hashes use static construction from DM name constants - problem with uniquelist
* DONE tool mode bltx output should write schema but controlled by option (normal output uses same option)
* DONE per-names/name options are not in .bcf - matters?
* DONE per-namelists/per-name options
** DONE needs per names/name support in biblatex and in bbl
** DONE sortnamekeyscheme needs per entry/names/name in bbl
** DONE biblatex macro support in formats for sortnamekeyscheme
** DONE What to do with gender attribute on name?
* DONE Document example in biblatex manual of compound keypart
* DONE implement patronymic namepart example
* DONE Document year/month (datepart fields) are not allowed in bltxml
* DONE Sorting
** OM/GRT enhancememts?
** Some integer tests with <=>?
* DONE Transliteration interface
** Waiting for L::T release then make this a dep.
* DONE Year is missing for knuth:ct in sorting.t?
* DONE biblatexml.pm date parsing
* DONE BCE, circa etc.
** In bbl/bblxml output
*** year should be yearabs
*** new *dateera={beforecommonera/commonera} and these should be localisation strings
** datezeros needs to force zeros, not just assume, then testoutput again
* DONE biblatex output for date metadata
* DONE biblatex input for date metadata
* DONE enforce date field naming - where?
* DONE datezeros needs to force zeros
* DONE biblatex new test doc
* DONE docs - negs, explicit era versions, bce bool, locale strings, circa/uncertain format and bools
* DONE Test negative date sorting
* DONE Volume and ? to ints and remove padding?
* DONE Enforce year/month format as ints - sortyear should be int only and documented so. Enforce in biber (not datamodel as it's not part of that)
* DONE final sort elements copy string into all further fields which dies on int schema
* DONE Tune ...
* DONE Remove/convert fastsort?
* DONE Decomm RIS
* DONE Eras/circa/uncertain in cites
* DONE uniquename and initstrings etc. for xname should use DM and no explicit nameparts.
  ** Config.pm read for unt
  ** Document \DeclareUniquenameTemplate, add to release notes, add to XSLT
* DONE useprefix namelist and name scope with bibtex
* DONE LabelalphaNameTemplate implementation
** DONE .bcf read
** DONE config.pm opt read
** DONE compound, strwidth replace pstrwidth, pcompound and compound
** DONE xsl update
** DONE Doc - move pstrwidth (remove) -> strwidth, pcompound (remove) -> compound, strwidth on lant overrides on lat
* DONE sortgiveninits
** DONE Should be moved to option of \namepart in SNKS
** DONE Remove biber option and make biblatex deprecated
** DONE Fix in Internals, Remove from Constants.pm and Config.pm
** DONE Change schema, .bcfs, xsl, doc
* DONE giveninits should be autogen and <name>inits
** DONE Doc (including scope)
* DONE 'given' in _getnamehash_u in Internals - can be abstracted?
* DONE nullable_check in Biber.pm - needed? It's a deep loop
* DONE donames stuff is messy
* DONE hash/fullhash for all names
* DONE Implement EDTF Date/Times
** DONE circa/uncertain/era should apply to individual dates, not the range.
** DONE 5.2.5 - seasons - new field (not in DM, only from date parsing), containing localisation string
** DONE iso8601 -> EDTF in biblatex with fallback 
** DONE < year for CE/AD
** DONE Document *season and all label* new fields
** DONE cite in 96 is circa xxxx-yyyy instead of circa xxxx-circa yyyy
*** DONE Document mkday,month,yearzeros, changes
** DONE 5.2.2 - expand to ranges in biber and put in \Xdateuncertain{}
*** DONE biblatex unspec
*** DONE Document, remove 5.2.2 exclusion 96-test
** DONE Default for era
*** DONE edtf toggle can be removed (not tests - see below)
*** DONE Make a 'simple' option for dateera, default
*** DONE make a value for dateera that can be tested, perhaps usermode too
*** DONE convert edtf toggle tests to check for 'simple'
*** DONE This will need to be added to mkranges like labelname but for edtf, no choice as now
*** Doc, 96
** DONE Putting all date meta things into labeldate resolution breaks the ability to treat labeldate parts as normal datepart fields. They shouldn't be applied there really - when they hit forcezeros etc. they cause an error. When they are simpler, forcezeros etc. can have \IfInteger to skip "nodate" etc. labeldate part values. However, labelyear printing in authoryear cites is already processed into a range etc. This probably shouldn't be the case any more so that labelyear is more easily processing like other years.
** DONE times
*** DONE Option to decide TZ format (none, "EST", num). Get rid of "floating" in bbl
*** DONE timezeros option?
*** DONE \mktimezeros - needs options like mkdatezeros? probably not as each component is 2 digits
*** DONE option labeldate makes time fields available
*** DONE \bibtimesep, \bibtimezonesep AM PM strings
*** DONE TZ display option
*** DONE formats - 24hour (normal and compressed), 12 hour am/pm (localised)
*** DONE Document *time={HH,HHcomp,hh} opts and formats, timelabel, alltimes, Expand bib:use:dat to include times. Format docs in aut:fmt:ich
* DONE EDTF should set dateera=simple and use \dateeraprintpre/\enddateeraprintpre
* DONE dateera=simple should -1 all bce years on output
** DONE Remove yearabs from biber, biblatex needs to +1 all bce abs values on output when dateera is not "astronomical"
** DONE fix biber tests
** DONE Fix spaces in cites, run tests, upload, reply
* DONE bibtex output only works on bibtex input data as it uses ->rawfields - should be able to base it on biblatexml output
** DONE name to bib and name to xnamebib in Name.pm
** DONE Name lists "and others"
** DONE name list output should use namesep option value
** DONE name list output needs to care about x vs normal for per-namelist options.
** DONE error could be raw fields which are found by get_field?
** DONE *seps should have separate output versions, same as input ones
** DONE Output annotations
** DONE Order of fields needs to be determined
** DONE Document all in biber manual, add output_xname, output_*sep to the table there
** DONE Remove raw and references to raw
** DONE Check idiosyncratic fields in input bibtex.pm like keywords etc.
** DONE Tool tests with --output-xname
* DONE Julian cutoff
** DONE cutoff option *must* be YYYY-MM-DD. Can be true or custom date. Document. Examples.
** DONE Passed in .bcf, probably no need to update schema if simple option. Must be in .bcf data model as global option.
** DONE Biber needs to put a *(end)datejulian boolean in the .bbl
** DONE Define \if*(end)datejulian and \if(end)datejulian tests
* DONE datelabel has to become labeldate somehow, for consistency
* DONE Times - more work
** DONE Add to EDTF
** DONE Add time output to standard formats (don't forget ranges in .lbx)
*** DONE bibdatetimesp should be space by default for non EDTF output
** DONE Document \print*time are stand-alone time prints and \printdate will print times if *dateusetime is set
** DONE Document *dateusetime, labeldateusetime, alldatesusetime and \bibdatetimesep
** DONE Add *dateusetime, labeldateusetime, alldatesusetime to scope table in doc
** DONE Document that the *usetime options do nothing with compact date range formats as this would be confusing.
** DONE New output format like EDTF but options
* DONE extrayear, (namestring, namestrings, namedisschema)->uniquelist, uniquename
* DONE bibaltexml.pm needs uiquenametemplate processing removing
* DONE sorting scheme names are not used. Create multiple and refer by name as with other dlist
* DONE presort, exclude and include should not be inside a sorting spec
* DONE ISO8601:2016
** DONE Refer to biblatex date format in docs as ISO8601-201? Part 2, Clause 4 Extended Format
** DONE Replace all EDTF refs in comments with ISO8601-2:2016
** DONE Need to define the profile and conformance to the various level 1 and level 2 features (see 4.1.2)
** DONE Uncertain+approximate ('?~') is now '%'
** DONE Unspecified 'u' is now 'X'
** DONE unknown, * -> missing, open -> ..
** DONE 'circa' should become 'approximate' to align with ISO8601
* DONE Look into variable length look/behinds in decode: http://www.drregex.com/2019/02/variable-length-lookbehinds-actually.html
* DONE New sourcemap verb fieldsource=cited/nocited?
* DONE XDATA generalisation
** DONE DOT output?
** DONE tool output
*** DONE tests with resolve/non resolve and output seps change
*** DONE output_xdatasep in tool mode
** DONE Document
*** DONE Default position when omitted for list sources is 1
*** DONE granular xdata doesn't work for dates
*** DONE granular xdata at field level and below must be between same field and datatypes
* TODO Multiscript
** Documentation
*** TODO \DeclareDatamodelMultiscriptEntryfields and \ResetDatamodelMultiscriptEntryfields
*** TODO multiscriptforms constant
** Datamodel
*** DONE Add valid multiscript fields to datamodel
*** DONE Add new datamodel constant list of default forms (original, transliteration, transcription, translation)
** Biber
*** DONE Parsing BCP47 function
https://tools.ietf.org/html/bcp47

*** TODO Parsing field alternates function
*** TODO annotation BCP47 tag parts override field tag part
