Don't access kvs directly but use x_module and field_data mechanisms
Create new structure allows override of usage id and category
location mapper maturation
richer exceptions, add_map return course_id, fix a bug, filter out unwanted kwargs in init
split get_item uses loc_mapper to decode old style Locations
Begin transactional with_version impl
Change create_item to optionally add the item to the head version and not create a new version.
Migrate data from old mongo to split mongo
Create location mapping
Create draft and published course with proper content in split.
Check has_children before accessing children
Always return a Locator: cases weren't exhaustive.
Cached course entry: separate structure from identity
Don't undo inheritance by unsetting course_entry structure
Do finer-grained cache clearing