Time tracking (permanent)

I don’t know if this should go to feature-requests or to Any-Case. Probably feature-requests because it’s only a plan now.

What Do You Recommend?

Dear developers please implement this or I’ll start implementing this myself. So please tell me if it’s doable. Validate please I mean.

How Could It Be Done?

UI: 
	show current.object (currently tracked)
	button1 "Select this object as current task" 
	button2 "Stop tracking" 
null is same as undefined (if doesn't exist)
There should be trackedTime objects
object means any anytype object but trackedTime 
object should have
	trackingParentObject=null
	duration=null
trackedTime has 
	startTime 
	endTime 
	object
there are current and prev trackedTime which are initially null
function commponPart()
	let objs be: every intermediate object in anytype's hierarchy from currentObject up to one whose trackingParentObject=null
	if (prev !=null)
		prev.object.duration = currentTime-prev.startTime
		prev.endTime = currentTime
		if currentObject.trackingParentObject is null user choosing it from: 
			currentObject.parent chosen by default
			objs
			input field to find and select arbitrary object
		increase duration by prev.duration in objs
when button1 pressed
	commponPart()
	prev = current
	current=new trackedTime{startTime=currentTime,object=currentObject}
when button2 pressed
	commponPart()
	prev=null
	current=null

Real World Use-Cases

Time tracking (permanent) of my life