Forecast

\[GET\] /rest/v2/forecast \--> get all forecasts

\[GET\] /rest/v2/forecast/:forecastId \--> get a single forecast

\[PUT\] /rest/v2/forecast \--> create new forecast

\[POST\] /rest/v2/forecast/:forecastId \--> save/commit a single forecast
\\

Speculation

\[GET\] /rest/v2/speculation/expense/gl \--> return a hierarchical list of GLs
\\

\[PUT\] /rest/v2/speculation/expense \--> create new expense (needs GL category)

\[PUT\] /rest/v2/speculation/person \--> create new person

\[PUT\] /rest/v2/speculation/person/tbh/:tbhId \--> create a new TBH
\\

\[POST\] /rest/v2/speculation/expense/:expenseId \--> update/save an expense

\[POST\] /rest/v2/speculation/person/:personId \--> update/save person

\[DELETE\] /rest/v2/speculation/expense/:expenseId \--> delete an expense

\[DELETE\] /rest/v2/speculation/person/:personId \--> delete person
\\

Person

\[GET\] /rest/v2/person/:personId \--> return person data (perhaps only data subset)

\[GET\] /rest/v2/person/list \--> takes a string (at least 3-character long) an returns a list

\[GET\] /rest/v2/person/:personId/appointment \--> get appointments for a person